Java11:直接执行单个文件中的Java代码

Java 11已经发布。

Java 11正式版已经发布,从这个版本开始,Oracle JDK的支持将收费。目前来看,OpenJDK提供无费的长期支持仍然不太可能。

直接执行单一文件的Java代码

JEP 330: 启动单文件源代码程序
http://openjdk.java.net/jeps/330

我尝试了一下。

安装

我尝试的是Windows版。
我从http://openjdk.java.net/
点击链接进去,
但是我却误点了Oracle JDK的链接进行安装。
OpenJDK 11去哪了(之后再找)。

你可以从以下网址下载:
https://jdk.java.net/11

暂时安装并确认Java版本。
我在Windows上升级到了Java 8,但环境变量仍未更改,仍然是Java 8,所以我手动将PATH和JAVA_HOME的路径更改为Java 11。

$ java -version
openjdk version "11" 2018-09-25
OpenJDK Runtime Environment 18.9 (build 11+28)
OpenJDK 64-Bit Server VM 18.9 (build 11+28, mixed mode)

将单个文件的Java代码直接执行。

所以,只需要一个选项,用中文来改写以下内容:“这里有一个单一的Java文件。”

测试.java

class Test {
    public static void main(String[] arg) {
        System.out.println("Hello World");
    }
}

不需要编译即可执行

$ java test.java
Hello World

我成功了。

当然可以编译并执行。

$ javac test.java
$ ls
Test.class  test.java
$ java Test
Hello World

当然的事情是,如果使用.class文件的话,由于没有初始的中间编译,所以执行速度会更快。