Gibt es so etwas wie den interaktiven REPL-Modus von Python, aber für Java? Damit ich zum Beispiel InetAddress.getAllByName( localHostName )
ein Fenster eingeben und sofort Ergebnisse erhalten kann, ohne all diese öffentliche statische Leere Alptraum () Sache?
java
read-eval-print-loop
Yoni Roit
quelle
quelle
Antworten:
bearbeiten Seit Java 9 gibt es JShell
Die ursprüngliche Antwort folgt
Sie können auch Groovy Console verwenden . Es ist eine interaktive Konsole, in der Sie tun können, was Sie wollen. Da Groovy auch Klassen von der Java-Kernplattform enthält, können Sie diese Klassen auch verwenden.
Es sieht aus wie das:
quelle
System.exit()
), aber für die meisten Zwecke sollte dies angemessen sein.class test{public static void test(){System.out.println('test')}}
Eclipse hat eine Funktion, um dies zu tun, obwohl es keine Schleife ist. Es heißt "Scrapbook Page". Ich nehme an, die Analogie soll sein, dass Sie ein Sammelalbum haben, in dem Sie kleine Codeausschnitte sammeln.
Um es zum Laufen zu bringen, öffnen Sie ein Projekt in Eclipse (Ihre Scrapbook-Seite wird einem Projekt zugeordnet - Eclipse gefällt es, wenn Projekte Dinge besitzen).
Dann:
Jetzt haben Sie eine Sammelalbumseite. Geben Sie einen Code ein, wie folgt:
System.out.println(System.getProperties());
Wählen Sie dann den Text mit der Maus aus und drücken Sie entweder Strg-U oder wählen Sie "Ausführen" aus dem Kontextmenü. Der Code wird ausgeführt und die Ausgabe wird auf der Konsole angezeigt.
Sie können auch einen Ausdruck eingeben, auswählen und im Kontextmenü die Option Anzeigen auswählen. Der Ausdruck wird ausgewertet und sein Typ gedruckt. Wenn Sie beispielsweise Anzeige ein ausführen,
1 + 2
wird gedruckt(int) 3
.quelle
http://www.beanshell.org/
http://www.beanshell.org/manual/syntax.html#Standard_Java_Syntax
quelle
Sie können Eclipse Scrapbook-Seiten verwenden.
Erstellen Sie in Eclipse eine Sammelalbum-Seite. In Ihrem Projekt die Seite Neu-> Andere-> Sammelalbum.
Geben Sie in die Datei einen Text ein, wählen Sie ihn aus und drücken Sie Strg-U, und los geht's.
Um Ihre Importe zu verwalten, klicken Sie mit der rechten Maustaste auf die Seite und wählen Sie Importe festlegen, wo Sie ein Paket oder eine einzelne Klasse importieren können. Dies ist dauerhaft und wird mit der Seite gespeichert.
quelle
Alte Frage, aber jetzt (Mai 2013) gibt es eine bessere Antwort - java-REPL! Es ist auf Github verfügbar und auch live auf der Java-Repl-Website für schnelle einmalige Tests verfügbar .
Wenn Sie den Git-Hub-Code abrufen und ausführen
ant
, um die Artefakte zu generieren, können Sie die Verwendung mit einem kleinen Skript wie dem folgenden vereinfachen:Seit ich dieses Projekt gefunden habe, benutze ich es wahrscheinlich 5 Mal am Tag. Genießen!
quelle
Es scheint, dass noch niemand erwähnt hat, dass Java (6, 7) eine REPL-Konsole namens aufruft
jrunscript
. Es ist sprachunabhängig (kann also mit Jython, JRuby usw. verwendet werden). Standardmäßig wird JavaScript (Rhino) verwendet, das ebenfalls standardmäßig gebündelt ist. Wie in den anderen Sprachen können Sie auf alle im Klassenpfad verfügbaren Pakete / Objekte zugreifen.quelle
Es ist Teil von OpenJDK 9!
Eine REPL namens JShell (entwickelt von Oracle) wurde als Teil von JDK 9 veröffentlicht.
Laden Sie einfach JDK 9 herunter und starten Sie es
bin/jshell
.Ressourcen
quelle
Versuchen Sie als Alternative zu Groovy Beanshell: http://www.beanshell.org/
Es ist eher Java-ähnlich und ermöglicht es Ihnen, die Java-Syntax direkt zu verwenden.
quelle
Jython ist eine Python-Implementierung, mit der Sie Java-Objekte untersuchen und mit ihnen interagieren können.
quelle
Java-REPL von Albert Latacz funktioniert gut.
Sie können es direkt in Ihrem Browser hier ausprobieren: http://www.javarepl.com/term.html
Der Quellcode ist hier verfügbar und verfügt über ein anständiges Intelli-J-Plugin.
https://github.com/albertlatacz/java-repl
quelle
Clojure bietet eine REPL, die Sie verwenden können.
quelle
Die groovige Konsole ermöglicht es Ihnen, dies zu tun. Eigentlich sollte es versuchen, groovigen Code zu testen, aber da groovy eine Obermenge von Java ist, erlaubt es auch einfaches Java-Zeug.
Ich habe dies gerade in die Konsole eingegeben:
und drücken Sie STRG-R, dann kehrte es zurück:
quelle
Scala bietet auch eine interaktive Konsole. Ich konnte es verwenden, um ein Ergebnis für den Ausdruck in Ihrer Frage zu erhalten, indem ich InetAddress vollständig qualifizierte, wie in:
quelle
Während JRuby , BeanShell und Julian Fleischers REPL dort sind, gibt es Albert Lataczs REPL scheint die neueste und aktivste zu sein.
Versuchte es mit einer einfachen Klassendefinition, funktioniert gut.
quelle
Für Benutzer mit Zugriff auf Mathematica können Sie mit JLink auf Java und Skripte mit Mathematica-Code zugreifen:
Drücken Sie die Umschalt-Eingabetaste, um zu bewerten, und Sie erhalten
Anschließend können Sie die Map-Funktion von Mathematica verwenden, um
toString
die zurückgegebenen Objekte aufzurufen :um das Ergebnis zu erhalten (oder um die weniger obskure Syntax zu verwenden
Map[Function[obj, obj@toString[]], %]
):Wenn Sie ernsthaft damit anfangen, sollten Sie das Tutorial von Todd Gayley unter http://reference.wolfram.com/mathematica/JLink/tutorial/Overview.html lesen .
quelle
Wenn Sie Groovy bereits kennen (was Sie vermutlich tun, da Sie die Groovy-Konsole erwähnt haben), verwenden Sie einfach groovysh oder groovyConsole, die in der Groovy-Distribution enthalten sind. Wenn Sie benutzerdefinierte Jars haben, die Sie importieren möchten, können Sie entweder eine Batch-Datei schreiben, die groovysh / groovyConsole mit den dem Klassenpfad hinzugefügten startet. Sie können dies auch tun
aus der Schale heraus, um andere Gläser zu laden.
Ich habe Jython vor einigen Jahren verwendet, um genau das zu tun, was Sie verlangen. Als Teil meines Build-Skripts habe ich eine benutzerdefinierte Datei jython.bat und .py generiert, die den vollständigen Klassenpfad für das Projekt enthält, an dem ich gearbeitet habe. Auf diese Weise würde beim Starten von Jython der gesamte Code verfügbar sein und Spring aufrufen, damit ich die Dinge im Live-System ändern kann. Sie können dasselbe mit Groovy, JRuby, BeanShell usw. tun.
quelle
Sie können Java mit jruby http://kenai.com/projects/jruby/pages/CallingJavaFromJRuby skripten
quelle
Ja, es gibt: http://www.scravy.de/blog/2012-02-27/a-read-eval-print-loop-for-java.htm
quelle
Die meisten IDEs haben ein Fenster namens "Sofortmodus", in dem Sie Java-Code im laufenden Betrieb auswerten können.
quelle
Sie könnten sich BlueJ ansehen eine interaktive Java-Entwicklungsumgebung, die eher zum Unterrichten von OOP als als vollständige IDE wie Eclipse oder NetBeans gedacht ist. Es macht sowieso Spaß, mit ihm zu spielen.
Sie können es in YouTube in einer Reihe von Java-Tutorials in Aktion sehen .
quelle
DrJava ist eine Lern- IDE, die einen REPL-Bereich enthält.
Es gibt auch ein Eclipse-Plugin, aber es hat bei mir nicht funktioniert. Ich denke, es wurde seit einiger Zeit nicht mehr aktualisiert. Im Allgemeinen halte ich ein DrJava-Fenster für die Fragen "Was passiert, wenn ich das tue?" Offen.
EclipseShell ist vielleicht auch gut, aber ich habe es noch nicht verwendet.
quelle
Bohnenschale 2
quelle
Es gibt eine einfache IDE namens DrJava mit einer Interaktionskonsole. Es funktioniert genau so, wie ich es erwarten würde. Laden Sie einfach eine Datei und beginnen Sie mit den darin enthaltenen Objekten zu interagieren.
quelle
Es gibt eine Online-REPL: http://www.javarepl.com/console.html
Mehr tippen, um das Zeichenlimit zu erreichen ...
quelle
Für Java 8 gibt es nudge4j. Siehe https://github.com/lorenzoongithub/nudge4j
... und das Schöne ist, dass Sie Ihre Anwendung über den Browser steuern können
quelle
JPad ist ein Java-Notizblock mit einer integrierten REPL:
Es ist auch klug, Sammlungen, Listen, Karten usw. zu sichern und sie als Tabelle oder Diagramm zu rendern:
quelle
Java 9 stellt die JShell bereit.
quelle
Jython, JIRB für JRuby , Groovy (groovyconsole et al.) Und Beanshell sind alles mögliche Optionen.
Ich habe das
InteractiveConsole
für Jython verwendet, es hat in der App wirklich gut funktioniert.quelle