How to execute a javascript with jshell?

后端 未结 4 1000
自闭症患者
自闭症患者 2020-12-08 08:07

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

4条回答
  •  自闭症患者
    2020-12-08 08:35

    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/.

提交回复
热议问题