Java 11がリリースされました。
Java 11正式版がリリース、本バージョンからOracle JDKのサポートは有償に。OpenJDKで無償の長期サポート提供は現時点で期待薄
https://www.publickey1.jp/blog/18/java_11oracle_jdkopenjdk.html
その中の「単一ファイルのJavaコードをそのまま実行」
JEP 330: Launch Single-File Source-Code Programs
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のパスをjava11に書き換えた。
$ 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ファイル
test.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ファイル使う場合は最初の中間コンパイルがないので、その分実行が早い。