Forum: PC-Programmierung java shell für Linux gesucht


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Uhu U. (uhu)


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?

von Michael S. (e500)


Lesenswert?

Sowas wie die JShell aus Java 9?

Wieso nicht diese nehmen?

: Bearbeitet durch User
von ui (Gast)


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.

von Uhu U. (uhu)


Lesenswert?

ui schrieb:
> kann das wirklich funktionieren?

Man kann jede compilierbare Sprache auch direkt interpretieren.

von ui (Gast)


Lesenswert?

Uhu U. schrieb:
> ui schrieb:
>> kann das wirklich funktionieren?
>
> Man kann jede compilierbare Sprache auch direkt interpretieren.

Also parsen und simulieren.

von Uhu U. (uhu)


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.

von Rolf M. (rmagnus)


Lesenswert?

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.

von Scelumbro (Gast)


Lesenswert?

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?

von Uhu U. (uhu)


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.

: Bearbeitet durch User
von Noch einer (Gast)


Lesenswert?

> 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.

von Der Schwenn (Gast)


Lesenswert?

beanshell ist dein Freund.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.