【发布时间】:2019-03-02 23:36:45
【问题描述】:
我想看看两天前发布的 java 11 的一些新特性。 JEP 330 声明我可以在不编译的情况下启动 Java-Source-Code-Program。 它还应该支持 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!");
}
}
我downloaded JDK 11 并将其提取到/opt/java。
因此,Shebang 本身正在工作。
IE。执行/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)后,执行失败。
IE。 ./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
一旦我从 Test.java 中删除 Shebang-Line 并以 /opt/java/jdk-11/bin/java --source 11 Test.java 开头
一切都像魅力一样工作,我得到了预期的输出:Hello World!
我的机器正在运行Ubuntu 17.04。
我已将 javac 链接到 JDK 11 中的那个(即执行 javac -version 会得到 javac 11)。
【问题讨论】:
-
这只是 1) OpenJDK 2) Unix 风格操作系统的唯一选项...即。它适用于 Windows 吗?