Java 11:通过Shebang执行源文件不起作用
我想看看两天前发布的java 11的一些新功能。JEP 330 指出,我可以在不编译的情况下启动 Java 源代码程序。它还应该支持Shebang-Files的使用。
因此,我写了这个小的Hello-World程序:Test.java
#!/opt/java/jdk-11/bin/java --source 11
public class Test
{
public static void main(String[] args)
{
System.out.println("Hello World!");
}
}
我下载了JDK 11并将其解压缩到.因此,Shebang本身正在发挥作用。即执行给我/opt/java
/opt/java/jdk-11/bin/java --version
openjdk 11 2018-09-25
OpenJDK Runtime Environment 18.9 (build 11+28)
OpenJDK 64-Bit Server VM 18.9 (build 11+28, mixed mode)
在制作可执行文件(使用)后,执行失败。即 给我:Test.java
chmod +x Test.java
./Test.java
./Test.java:1: error: illegal character: '#'
#!/opt/java/jdk-11/bin/java --source 11
^
./Test.java:1: error: class, interface, or enum expected
#!/opt/java/jdk-11/bin/java --source 11
^
2 errors
error: compilation failed
一旦我从Shebang-Line中删除并开始它,一切都像一个魅力一样工作,我得到了预期的输出:Test.java
/opt/java/jdk-11/bin/java --source 11 Test.java
Hello World!
我的计算机正在运行 。我已经链接到JDK 11中的那个(即执行给)。Ubuntu 17.04
javac
javac -version
javac 11