java shell für Linux gesucht

OP #5269948
Lesenswert?

Ich suche eine Möglichkeit, Java-Befehle in einer interaktiven Umgebung 
unter Linux auszuprobieren - so ähnlich, wie irb oder pry für Ruby.

Unter Linux Mint 17 gibt es Bean Shell (bsh und xbsh). Nur leider 
funktioniert in bsh das primitivste Editing nicht - Textkorrekturen sind 
fast unmöglich - und xbsh, die X-Version zeigt ein Startsymbol mitten 
auf dem Schirm an und das wars dann.

Kennt jemand so was ähnliches, das funktioniert?
Gast #5269964
Lesenswert?

ich nutze zwar sowas nicht, aber kann das wirklich funktionieren? Java 
muss doch erst "kompiliert" werden, also sollte sowas doch nicht gehen. 
Auch wenn ich an das Modell (main funktion innerhalb einer Klasse) 
denke, wird das wohl nix werden.
OP #5269989
Lesenswert?

Das gabs schon in der Computer-Urzeit bei Lisp und ist als 
eval-print-loop bekannt.

Ein interaktiver Java-Interprter hat den eval-print-loop in seiner 
eigenen main. In dieser Umgebung laufen dann die Eingaben, nachdem sie - 
in der Umgebung des Interpreters - befehlsweise compiliert wurden.
OP #5270169
Lesenswert?

Rolf M. schrieb:
> Das heißt, um irgendwas auszuführen, muss
> ich immer erstmal in der Shell on the fly eine Klasse implementieren.

Nein, musst du nicht. Der Interpreter compiliert im Kontext des 
eval-print-Loops. Das Compilat besteht aus einen java-Befehl und wird 
anschließend im Kontext des eval-print-loops ausgeführt. Zum Schluss 
wird das Ergebnis ausgegeben und das Spiel geht von vorne los.

Das ist ein inkrementeller Compiler - der wird auch gerne in IDEs 
benutzt, weil sich damit kleine Änderungen sehr schnell compilieren 
lassen. (Der Compiler muss dann eben die geänderten Codes wieder 
"irgendwie" in den Gesamtcode rein frickeln - im Prinzip so ähnlich, wie 
man früher "Rucksäcke" in den Maschinencode gepatcht hat, um Fehler zu 
korrigieren.)

Der Preis sind die Symboltabellen, die zwischen den Compilerläufen 
aufgehoben werden müssen.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren