在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
的文件中,并在文件的开头放上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