Vorausgesetzt, dass Java 9 auf uns ist und wir endlich eine Java-REPL mit jshell
haben kann, hatte ich gehofft, es gab eine Möglichkeit, einen Shebang zu einem Skript hinzufügen und jshell
interpretieren.Wie führe ich ein Java Script mit jshell aus?
versuchte ich test.jsh
erstellen:
#!/usr/bin/env jshell -s
System.out.println("Hello World")
/exit
Wie dem auch gibt:
⚡ ./test.jsh
| Error:
| illegal character: '#'
| #!/usr/bin/env jshell -s
|^
| Error:
| illegal start of expression
| #!/usr/bin/env jshell -s
| ^
Hello World
Es stellt sich heraus, es ist eine Erweiterung Anfrage dies in OpenJDK https://bugs.openjdk.java.net/browse/JDK-8167440.
Gibt es eine andere Möglichkeit, dies zu tun?
Wie funktioniert das überhaupt? Ich frage mich, wie tragbar das ist. Zugegeben, "#!" Ist sowieso kein Standard-POSIX, aber sicher, was magische Zahlen angeht, wäre es das am weitesten verbreitete. – Steiny
Mindestens 'bash' unterstützt die ursprüngliche' // 'Zeile. Siehe diesen Thread für Details http://mail.openjdk.java.net/pipermail/kulla-dev/2016-October/thread.html#1679 ... mit Brian Goetz, der besagt, dass die Erstellung einer '.jsh' Datei ausführbar ist versuchen, jshell in etwas zu verwandeln, für das es nicht bestimmt war. _ – Sormuras
> _Wie funktioniert das überhaupt? _ Sehen Sie die Beschreibung des "Hacks" an Abschnitt _ "Imitieren Sie den Shebang über Bash" _ bei http: // golangcookbook.com/chapters/running/shebang/ – Sormuras