Frage

Gibt es so etwas wie Python interaktiven REPL-Modus, aber für Java? Damit kann ich zum Beispiel Typ InetAddress.getAllByName( localHostName ) in einem Fenster, und sofort Ergebnisse erhalten, ohne all diesem public static void Alptraum (), was?

War es hilfreich?

Lösung

Bearbeiten Da Java 9 gibt es JShell

Original Antwort folgt

Sie können auch verwenden Groovy Console . Es ist eine interaktive Konsole, wo Sie tun können, was Sie wollen. Da auch Groovy Klassen aus dem Kern Java-Plattform umfasst, können Sie auch diese Klassen verwenden.

Es sieht wie folgt aus:

Screenshot von Groovy

Andere Tipps

Eclipse-verfügt über eine Funktion, dies zu tun, auch wenn es keine Schleife ist. Es ist eine „Scrapbook-Seite“ bezeichnet. Ich nehme an, die Analogie soll sein, dass Sie ein Album, wo Sie kleine Code-Schnipsel sammeln.

Wie auch immer, damit es funktioniert, öffnen Sie ein Projekt in Eclipse (Scrapbook-Seite wird mit einem Projekt zugeordnet werden - Eclipse-mag es, wenn Projekte eigene Sachen).

Dann:

  1. im Projektnavigator Fenster wählen Sie einen Ordner, der irgendwo in Ihrem Projekt vorhanden ist.
  2. Entweder Sie im Menü Datei -> Neu -.> Sonstiges, oder drücken Sie Strg-N
  3. Wählen Sie Java -> Java Run / Debug -.> Scrapbook-Seite
  4. Hit "Next", dann einen Dateinamen geben, dann drücken Sie auf "Fertig stellen".

Jetzt haben Sie eine Scrapbook-Seite. einen Code eingeben, wie vielleicht so aus:

System.out.println(System.getProperties());

Wählen Sie dann den Text mit der Maus, und entweder drücken Sie Strg-U oder wählen Sie „Ausführen“ aus dem Kontextmenü. Der Code wird ausgeführt und die Ausgabe auf der Konsole angezeigt wird.

Sie können auch einen Ausdruck, wählen Sie aus und wählen Sie Anzeige aus dem Kontextmenü eingeben. Es wird den Ausdruck auswerten und seine Art drucken. Zum Beispiel wird Anzeige auf 1 + 2 läuft drucken (int) 3.

  

Beanshell ist ein kleines, frei, integrierbare Java-Quellcode-Interpreter mit dem Objekt Skriptsprache Funktionen, die in Java geschrieben. Beanshell führt dynamisch Standard-Java-Syntax und erweitert es mit gemeinsamem scripting an Komfort wie lose Typen, Befehle und Verfahren Verschlüsse wie die in Perl und JavaScript.   Sie können Beanshell verwenden interaktiv für Java Experimentieren und Debuggen sowie Ihre Anwendungen auf neue Weise zu erweitern. Scripting Java eignet sich für eine Vielzahl von Anwendungen, einschließlich Rapid Prototyping, Benutzer-Scripting-Erweiterung, Rules Engines, Konfiguration, Test, dynamische Bereitstellung, eingebettete Systeme und sogar Java Bildung.

http://www.beanshell.org/

http://www.beanshell.org/manual/syntax.html#Standard_Java_Syntax

Sie können mit Eclipse-Scrapbook-Seiten.

in Eclipse eine Scrapbook-Seite erstellen. In Ihrem Projekt, Neu-> Sonstiges-> Scrapbook-Seite.

In der Datei, geben Sie einen Text, wählen Sie es und drücken Sie anschließend Strg-U, und los geht.

Ihre Importe zu verwalten, klicken Sie rechts auf der Seite und Set Import wählen, in dem Sie können wählen, ein Paket oder eine einzelne Klasse zu importieren. Dies ist hartnäckig, und ist mit der Seite gespeichert.

Alte Frage, aber es gibt eine bessere Antwort jetzt (Mai 2013) - Java-ERSATZ! Er ist auf Github und auch live auf der java-repl Website für schnelle Einmaltests.

Wenn Sie den git-Hub-Code und laufen ant greifen die Artefakte zu generieren, können Sie es einfach mit einem kleinen Skript verwenden wie:

#!/bin/sh
java -jar /home/rdahlgren/scripts/javarepl-dev.build.jar

Da dieses Projekt zu finden, ich wahrscheinlich verwenden Sie es 5 mal am Tag. Genießen Sie!

Es scheint niemand erwähnt noch, dass Java (6, 7) Schiffe eine REPL Konsole jrunscript genannt. Es ist sprachunabhängig (so kann mit Jython, JRuby usw. verwendet werden). Standardmäßig wird JavaScript (Rhino), die ebenfalls standardmäßig gebündelt wird, und wie die anderen Sprachen können Sie alle Pakete zugreifen / Objekte auf dem Classpath zur Verfügung.

Als Alternative zu Groovy, versuchen Beanshell: http://www.beanshell.org/

Es ist Java-like und ermöglicht es Ihnen, Java-Syntax direkt zu verwenden.

Jython ist eine Python-Implementierung, die Sie mit Java-Objekte untersuchen und interagieren können .

>>> from java.net import *
>>> InetAddress.getAllByName("google.com")
array(java.net.InetAddress,[google.com/209.85.171.100, 
                            google.com/74.125.45.100,
                            google.com/74.125.67.100])

Es ist ein Teil von OpenJDK 9!

Ein REPL namens JShell (entwickelt von Oracle) als Teil von JDK 9 veröffentlicht.

Einfach herunterladen JDK 9 und startet bin/jshell.

 Screenshot von JShell

Ressourcen

Java-REPL von Albert Latacz gut funktioniert.

Sie können es versuchen, von Ihrem Browser direkt hier: http://www.javarepl.com/term.html

Der Quellcode ist hier, und es hat eine gute Intelli-J-Plugin.

https://github.com/albertlatacz/java-repl

Clojure ein REPL Sie verwenden können.

Die groovy Konsole , das zu tun erlaubt. Es war eigentlich gemeint groovy Code, um zu versuchen und zu testen, aber da groovy ein Superset von Java ist, erlaubt es aber auch schlicht Java Zeug.

Ich trat nur diese in die Konsole:

InetAddress.getAllByName('localhost')

und STRG + R getroffen, dann ist es wieder:

groovy> InetAddress.getAllByName('localhost')

Result: [localhost/127.0.0.1]

Scala bietet auch eine interaktive Konsole. Ich war in der Lage, es zu verwenden, um ein Ergebnis für den Ausdruck in Frage zu erhalten, indem voll qualifizierenden InetAddress, wie in:

java.net.InetAddress.getAllByName("localhost")

Während JRuby , Beanshell, Julian Fleischer REPL gibt es Albert Latacz der REPL scheint die neueste und aktiv ist.

zu sein

es mit einer einfachen Klassendefinition versucht, funktioniert gut.

$ java -jar javarepl.jar
Welcome to JavaREPL version 56 (Java HotSpot(TM) 64-Bit Server VM, Java 1.7.0_17)
Type in expression to evaluate.
Type :help for more options.

java> public class Test {
    | public static void execute(String [] s) {
    |  System.out.println(54353 + s[0]);
    | }}

java> Test.execute(new String [] {"234343"});
54353234343

java> System.exit(0);

Für Leute mit Zugang zu Mathematica, JLink ermöglicht den Zugriff auf Java und Skript mit Mathematica-Code:

Needs["JLink`"]
LoadJavaClass["java.net.InetAddress"]
InetAddress`getAllByName["localhost"]

Hit Umschalt-Enter, um zu bewerten, und Sie erhalten

{<<JavaObject[java.net.Inet4Address>>}

Dann können Sie Mathematica Map-Funktion verwenden toString auf die zurückgegebenen Objekte zu nennen:

#@toString[]& /@ %

das Ergebnis zu erhalten (oder weniger obskure Syntax, Map[Function[obj, obj@toString[]], %] zu verwenden):

{"localhost/127.0.0.1"}

Wenn Sie mit dieser ernst zu erhalten beginnen, werden Sie wollen Todd Gayley Tutorial unter http://reference.wolfram.com/mathematica/JLink/tutorial/Overview.html .

Wenn Sie bereits wissen Groovy (was ich nehme an, Sie tun, da Sie die Groovy-Konsole genannt), dann benutzen Sie einfach groovysh oder groovyConsole, die in der Groovy Distribution enthalten sind. Wenn Sie benutzerdefinierte Gläser haben, die Sie importieren möchten, können Sie entweder eine Batchdatei schreiben, die groovysh / groovyConsole mit denen zu dem Classpath hinzugefügt anläuft. Sie können dies auch tun

this.class.classLoader.rootLoader.addURL(new URL("file:///path to file"))

aus dem Inneren der Schale, andere Gläser zu laden.

habe ich vor einigen Jahren Jython verwenden genau das zu tun, was Sie fragen. Im Rahmen meines Build-Skript, erzeugen ich eine benutzerdefinierten jython.bat und Py-Datei, die die volle Classpath für das Projekt einbezogen ich arbeite. So, wenn ich Jython begann, hätte es den gesamten Code zur Verfügung, und es wäre Frühling bringen mir Dinge in dem Live-System twiddle zu lassen. Sie können mit Groovy, JRuby, Beanshell, etc das gleiche tun.

Die meisten IDE haben ein Fenster etwas wie „unmittelbaren Modus“ genannt, die es Ihnen erlaubt, Java-Code on the fly zu bewerten.

Sie können einen Blick auf BlueJ , die eine interaktive Java-Entwicklungsumgebung ist gemeint OOP für den Unterricht statt als voll IDE wie Eclipse oder NetBeans. Es ist eine Art Spaß ein Spiel mit sowieso zu haben.

Sie können es in Aktion sehen YouTube in einer Reihe von Java-Tutorials.

DrJava ist ein Bildungs-IDE, die ein REPL-Fenster enthält.

Es ist ein Eclipse-Plugin als gut, aber es hat sich für mich nicht funktioniert. Ich denke, es ist nur eine Weile nicht mehr aktualisiert worden. Also, was ich in der Regel tut, ist ein DrJava Fenster offen halten für das „Was passiert, wenn ich dies tun“ Fragen.

EclipseShell könnte auch gut sein, aber ich habe es noch nicht verwendet.

2 Beanshell

Es ist einfach IDE genannt DrJava , die eine Interaktion Konsole hat. Es funktioniert genau so, wie ich erwarten würde. Laden Sie einfach eine Datei und starten Sie mit den Objekten in ihm interagieren.

Es gibt ein Online-ERSATZ: http://www.javarepl.com/console.html

mehr Eingabe der Zeichen-Grenze zu erreichen ...

Für Java 8 gibt es nudge4j. finden Sie unter https://github.com/lorenzoongithub/nudge4j

... und die Schönheit ist, dass Sie Ihre Anwendung aus dem browsert Piloten können

JPad ist ein Java-Scratchpad mit einer eingebauten REPL:

C:\>jpad
       _ _____          _
      | |  __ \        | |
      | | |__) |_ _  __| |
  _   | |  ___/ _` |/ _` |
 | |__| | |  | (_| | (_| |
  \____/|_|   \__,_|\__,_|



Anything you type is evaluated as java.
The code is continuously appended until you call \clear.
Other Available Commands:
\exit - exit
\clear (n) - clear past java statements
\history - display all past java statements
\help - display this help

j>2+2
4
j>Math.sin(100.1)
-0.4177477
j>

Es ist auch klug, über Sammlungen, Listen, Karten usw. Dumping und ermöglicht es ihnen, als Tabelle oder Grafik-Rendering:

Java 9 ist die Bereitstellung der JShell.

jshell> println( "Print me!")
jshell> Print me!

Jython, JIRB für JRuby, Groovy (groovyconsole et al) und Beanshell sind alle möglichen Optionen.

Ich habe die InteractiveConsole für Jython verwendet, es funktionierte wirklich gut in der App.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top