Javaの単一ファイル実行を試してみる #Java

概要

みんなの Java 読んでいたら、Java の単一ファイル実行試してみたくなったのでやってみた。

環境

Mac で試した。

Java のバージョンは12。

$ java -version
openjdk version "12.0.1" 2019-04-16
OpenJDK Runtime Environment (build 12.0.1+12)
OpenJDK 64-Bit Server VM (build 12.0.1+12, mixed mode, sharing)

単一ファイルで実行してみる

下記のようなファイルを App.java という名前で用意する

package myapp;

public class App {
    public static void main(String... args) {
        System.out.println("Hello");
    }
}

実行してみる。

$ java App.java
Hello

すごい。。感動する。

Shebang として実行する

手順は下記の通り

  1. 先頭に Shebang を書く
  2. ファイル拡張子を外す
  3. ファイルに実行権限をつける
#!/usr/bin/env java --source 12
package myapp;

public class App {
    public static void main(String... args) {
        System.out.println("Hello shebang Java!");
    }
}

Shebang--sourceJava のバージョンの指定が必要らしい。

$ mv App.java app # 拡張子を外す
$ chmod +x app    # 実行権限をつける

実行してみる。

$ ./app 
Hello shebang Java!

すごい!

小さなプログラムも Java で書きやすくなった!