Die Java-Shell (JShell)

Die für Einsteiger vermutlich nützlichste Neuerung in Java 9 besteht darin, dass es nun einen Kommandointerpreter gibt, die Java-Shell (JShell). In der Fachsprache heißt dieses Feature auch Read-Eval-Print-Loop (REPL). In anderen Sprachen wie Python oder Swift ist ein derartiger Kommandointerpreter ja schon seit jeher eine Selbstverständlichkeit.

Die Java-Shell wird durch die Ausführung von jshell in cmd.exe bzw. in einem Terminalfenster gestartet. Anschließend können Sie einzelne Java-Kommandos eingeben, die dann sofort ausgeführt werden. Um die Zeichenkette »Hello World!« auszugeben, müssen Sie nur das entsprechende System.out.println-Kommando eingeben — ohne die Definition einer Klasse und ohne main-Methode.

> jshell 
  Welcome to JShell -- Version 9
  For an introduction type: /help intro

jshell> System.out.println("Hello World!")
Hello World!

Abweichend von den Java-Syntaxregeln ist es nicht erforderlich, einzelne Anweisungen mit einem Strichpunkt abzuschließen. Selbst auf System.out.println können Sie in der Regel verzichten. Wenn eine Anweisung ein Ergebnis liefert, wird dieses in jedem Fall ausgegeben.

jshell> String s = "abcde"
jshell> s.length()
$8 ==> 5

Auch mehrzeilige Konstrukte sind erlaubt. Das folgende Beispiel zeigt eine Schleife, in der die Variable i die Werte 0, 1 und 2 annimmt:

jshell> for(int i=0; i<3; i++) {
   ...>   System.out.println(i);
   ...> }
0
1
2

Wie die folgende Abbildung zeigt, können Sie in der Shell sogar neue Klassen definieren und anwenden:

In der Java-Shell (neu in Java 9) können Sie die Java-Syntax interaktiv ausprobieren.

Tipp: Innerhalb der Shell können Sie Klassen- und Methodennamen bei der Eingabe mit der Tabulator-Taste vervollständigen. Total praktisch!

Zum Verlassen der Java-Shell drücken Sie [Strg]+[D].