Given that Java 9 is upon us and we can finally have a java REPL with jshell
I was hoping there was a way to add a shebang to a script and have jshell
The below works too; put it into a someScript.jsh
file and run it with ./someScript.jsh
. All arguments received by someScript.jsh
will go to String[] args
.
#!/home/gigi/.sdkman/candidates/java/current/bin/java --source 11
import java.util.Arrays;
import ro.go.adrhc.*; // example of using your classes, e.g. App below
public class X {
public static void main(String[] args) {
// do whatever you want here, e.g.:
// System.out.println("Hello World");
// or
// use a class:
// App.main(args);
// e.g. from ro.go.adrhc package, by running:
// CLASSPATH="/path-to-ro.go.adrhc-classes" ./someScript.jsh
}
}
The usage of the wrapping class, here X
, is a mandatory trick for this to work.
Inspired by https://blog.codefx.org/java/scripting-java-shebang/.