演習課題「requires transitive を試してみよう」
現在、/home/ubuntu/java-module/source/jp.co.paiza.testa/jp/co/paiza/testa/Testa.javaにて、記述した内容を実行しようとしています。しかし、/home/ubuntu/java-module/source/jp.co.paiza.testa/module-info.javaが、/home/ubuntu/java-module/source/jp.paiza.testb/module-info.javaに依存し、/jp.paiza.testb/module-info.javaが、/home/ubuntu/java-module/source/jp.paiza.testc/module-info.javaに依存しているものの、/home/ubuntu/java-module/source/jp.co.paiza.testaから、/home/ubuntu/java-module/source/jp.paiza.testc以下の内容を利用できません。/jp.paiza.testb/module-info.javaにて、requires transitiveを付与し、Testa.javaにて、import文 と、import したクラスの、インスタンス変数の宣言と、メソッドの実行を記述し、記述した内容を実行してください。
なお、コンパイルコマンドについて理解できていれば、以下のコンパイルコマンドをコピーして利用してください。
$ javac -d classes/jp.paiza.testc -p classes source/jp.paiza.testc/module-info.java source/jp.paiza.testc/jp/paiza/testc/*/*.java
$ javac -d classes/jp.paiza.testb -p classes source/jp.paiza.testb/module-info.java source/jp.paiza.testb/jp/paiza/testb/*/*.java
$ javac -d classes/jp.co.paiza.testa -p classes source/jp.co.paiza.testa/module-info.java source/jp.co.paiza.testa/jp/co/paiza/*/*.java
また、実行コマンドについて理解できていれば、以下のコンパイルコマンドをコピーして利用してください。
$ java -p classes -m jp.co.paiza.testa/jp.co.paiza.testa.Testa
期待する出力値
Testa
Practicea
Practiceb
Practicec
Practicec
演習課題「exports to を試してみよう」
現在、/home/ubuntu/java-module/source/jp.co.paiza.testa/jp/co/paiza/testa/Testa.javaにて、記述した内容を実行しようとしています。しかし、/home/ubuntu/java-module/source/jp.paiza.testc以下の内容を、/home/ubuntu/java-module/source/jp.paiza.testb以外で使いたくありません。そこで、/home/ubuntu/java-module/source/jp.paiza.testc/module-info.javaにおいて、制限付きexports を使用し、jp.paiza.testb以外で使えないようにしてください。ただし、Testa.javaにおいて、jp.paiza.testc以下の内容を利用している記述は削除してください。その後、正しく実行してください。
なお、コンパイルコマンドについて理解できていれば、以下のコンパイルコマンドをコピーして利用してください。
$ javac -d classes/jp.paiza.testc -p classes source/jp.paiza.testc/module-info.java source/jp.paiza.testc/jp/paiza/testc/*/*.java
$ javac -d classes/jp.paiza.testb -p classes source/jp.paiza.testb/module-info.java source/jp.paiza.testb/jp/paiza/testb/*/*.java
$ javac -d classes/jp.co.paiza.testa -p classes source/jp.co.paiza.testa/module-info.java source/jp.co.paiza.testa/jp/co/paiza/*/*.java
また、実行コマンドについて理解できていれば、以下のコンパイルコマンドをコピーして利用してください。
$ java -p classes -m jp.co.paiza.testa/jp.co.paiza.testa.Testa
期待する出力値
Testa
Practicea
Practiceb
Practicec
#04:requires transitive と exports to
このチャプターでは、モジュール・ディレクティブのrequires transitive, exports toについて学習します。
・jp.co.paiza.a(モジュールを含めた形)javac -d classes/jp.co.paiza.a -p classes source/jp.co.paiza.a/module-info.java source/jp.co.paiza.a/jp/co/paiza/*/*.java
・jp.paiza.b(モジュールを含めた形)javac -d classes/jp.paiza.b -p classes source/jp.paiza.b/module-info.java source/jp.paiza.b/jp/paiza/b/*/*.java
・jp.paiza.c(モジュールを含めた形)javac -d classes/jp.paiza.c -p classes source/jp.paiza.c/module-info.java source/jp.paiza.c/jp/paiza/c/*/*.java
java -p classes --module jp.co.paiza.a/jp.co.paiza.a.A