shebang
在Java 11中,对java启动器进行了增强,可以直接运行单文件源代码程序,而不必先编译它们。
例如,考虑以下仅添加其参数的类:
import java.util.*;
public class Add {public static void main(String[] args) {System.out.println(Arrays.stream(args).mapToInt(Integer::parseInt).sum());}
}在Java的早期版本中,您首先必须编译源文件,然后按以下方式运行它:
$ javac Add.java
$ java Add 1 2 3
6在Java 11中,无需编译文件! 您可以直接运行它,如下所示:
$ java Add.java 1 2 3
6 甚至没有必要在文件上具有“ .java”扩展名。 您可以随意调用该文件,但是,如果文件不具有“ .java”扩展名,则需要指定--source选项,以告知java启动器使用源文件模式。 在下面的示例中,我将文件重命名为MyJava.code并使用--source 11运行它:
$ java --source 11 MyJava.code 1 2 3
6 它变得更好! 也可以使用shebang( #! )机制在基于Unix的系统上直接运行Java程序。
例如,您可以从Add.java获取代码,并将其放置在名为add的文件中,并在文件的开头add shebang,如下所示:
#!/path/to/java --source 11
import java.util.*;
public class Add {public static void main(String[] args) {System.out.println(Arrays.stream(args).mapToInt(Integer::parseInt).sum());}
} 使用chmod将文件标记为可执行文件,然后按以下方式运行它:
$ chmod +x add
$ ./add 1 2 3
6翻译自: https://www.javacodegeeks.com/2019/01/running-single-programs-shebang-scripts.html
shebang