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