Project Jigsawをちょっと試してみました

最新Java情報局 - 「JavaOne 2015」レポート、注目浴びたProject Jigsaw:ITproを読ませていただいて、Jigsawをちょっと試してみました。

環境

  • JDK9をDownloadしてJAVA_HOMEに設定
export JAVA_HOME=~/Downloads/jdk-9.jdk/Contents/Home/

f:id:tomoTaka:20160103103452p:plain

画面

  • フォルダ構成

f:id:tomoTaka:20160103095019p:plain

  • 実行結果

f:id:tomoTaka:20160103095030p:plain

実装

依存関係はとりあえずこめんとアウトしました。

module com.foo.bar {
//    requires com.foo.baz;
    exports com.foo.bar.alpha;
}
package com.foo.bar.alpha;
import com.foo.bar.beta.Beta;

public class Alpha {
    public static void main(String... args) {
        Beta beta = new Beta();
        beta.sayHello();
    }
}
package com.foo.bar.beta;
public class Beta {
    public void sayHello(){
        System.out.println("Hello Java!!!");
    }
}
javac -d mods/com.foo.bar foobar/module-info.java foobar/com/foo/bar/alpha/Alpha.java foobar/com/foo/bar/beta/Beta.java
  • 実行
java -modulepath mods -m com.foo.bar/com.foo.bar.alpha.Alpha
  • jarファイルをバージョン指定して作成
jar --create --file mods/foobar.jar --module-version 1.0 -C mods/com.foo.bar .
  • 実行時エラー発生

その後再度実行すると以下のエラーが、、、
f:id:tomoTaka:20160103102725p:plain
とりあえず作成したclassファイルとjarファイルを削除して再度コンパイル、実行するとエラーは発生しなくなりました。
いろいろ難しいです、、、
でも実装楽しいです!