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?
Sowas wie die JShell aus Java 9? Wieso nicht diese nehmen?
:
Bearbeitet durch User
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.
ui schrieb: > kann das wirklich funktionieren? Man kann jede compilierbare Sprache auch direkt interpretieren.
Uhu U. schrieb: > ui schrieb: >> kann das wirklich funktionieren? > > Man kann jede compilierbare Sprache auch direkt interpretieren. Also parsen und simulieren.
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.
Aber ist das bei Java nicht arg umständlich? Soweit ich weiß, darf Code doch nur in Klassen stehen. Das heißt, um irgendwas auszuführen, muss ich immer erstmal in der Shell on the fly eine Klasse implementieren.
Die einzig richtige Anwort. In der ersten Anwort. Den Rest kann man getrost ignorieren. Michael S. schrieb: > Sowas wie die JShell aus Java 9? > > Wieso nicht diese nehmen?
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.
:
Bearbeitet durch User
> Die einzig richtige Antwort.
Nix da! Ein echter Java Programmierer schiesst grundsätzlich mit
Interkontinentalraketen auf Spatzen.
Nimm die Display-View aus dem Eclipse Debugger.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.