Ich erkunde gerade die neue Version von Java, das neue Modulsystem und spiele mit der jshell. Wahrscheinlich hat meine Frage nicht viel Sinn, aber ich bin nur neugierig.
Also kam ich auf die Frage: Gibt es eine Möglichkeit, ein Modul in der jshell zu erstellen? Oder Modul kann nur in module-info.java
erstellt werden?
Module können derzeit nicht mit JShell erstellt werden und es ist auch kein Ziel von JShell .
Die JShell-API stellt alle Evaluierungsfunktionen von JShell bereit. Die Codefragmente, die in die API eingegeben werden, werden als bezeichnet
"snippets"
Das jshell-Tool verwendet auch die JShell-Completion-API für Bestimmen, wann die Eingabe unvollständig ist (und der Benutzer muss dazu aufgefordert werden mehr), wenn es komplett wäre, wenn ein Semikolon hinzugefügt würde (in dem Falls das Werkzeug das Semikolon anhängen soll) und auch wie man es vervollständigt Eingabe, wenn die Vervollständigung mit einem Tab angefordert wird.
Ein Snippet muss einer der folgenden JLS-Syntaxproduktionen entsprechen:
A snippet
kann ein Paket oder ein Modul nicht deklarieren . Der gesamte JShell-Code wird in einem einzelnen Paket in einem unbenannten Modul . Der Name des Pakets wird von JShell gesteuert.
Tatsächlich ist der Versuch, ModuleDeclaration
in JShell zu verwenden, keine anerkannte Syntax, sowohl direkt als auch mit /edit
:
Die folgenden Optionen können jedoch effektiv ausgeführt werden, um vorhandene Module in JShell zusammen mit den Snippet-Auswertungen zu verwenden -
%Vor%Tags und Links java java-9 java-module jshell