为了账号安全,请及时绑定邮箱和手机立即绑定

Java 11:通过 Shebang 执行源文件不起作用

Java 11:通过 Shebang 执行源文件不起作用

青春有我 2021-10-13 16:29:57
我想看看两天前发布的 java 11 的一些新特性。 JEP 330声明我可以在不编译的情况下启动 Java-Source-Code-Program。它还应该支持 Shebang-Files 的使用。因此我编写了这个小小的 Hello-World 程序Test.java:#!/opt/java/jdk-11/bin/java --source 11public class Test{    public static void main(String[] args)    {        System.out.println("Hello World!");    }}我下载了 JDK 11并将其解压缩到/opt/java. 因此,Shebang 本身正在发挥作用。即执行/opt/java/jdk-11/bin/java --version给了我openjdk 11 2018-09-25OpenJDK 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 errorserror: compilation failed一旦我从中删除 Shebang-LineTest.java并启动它,/opt/java/jdk-11/bin/java --source 11 Test.java 一切都像魅力一样工作,我得到了预期的输出:Hello World!我的机器正在运行Ubuntu 17.04。我已链接javac到 JDK 11 中的那个(即执行javac -versionGive javac 11)。
查看完整描述

3 回答

  • 3 回答
  • 0 关注
  • 165 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信