演習課題「require を記述してみよう」
モジュールのルートディレクトリである/home/ubuntu/java-module/source/jp.co.paiza.testa
に、module-info.java
ファイルが用意してあります。module-info.java
において、b に依存することを示す(表す)requires
を記述してください。
演習課題「exports を試してみよう」
現在、/home/ubuntu/java-module/source/jp.co.paiza.testa/jp/co/paiza/testa/Testa.java
にて、別のモジュールのクラスである、Practicea
とPracticeb
を利用しようとしています。それぞれの import文 とクラス宣言、メソッドを実行するコードを記述してください。
また、アクセスが許可されていないため、コンパイル時にエラーが発生してしまいます。このエラーを解消するよう、/home/ubuntu/java-module/source/jp.paiza.testb/module-info.java
にて、exports
を記述してください。
その後、正常に終了するようコンパイルを行ってください。ただし、モジュールパスの指定に際して、省略は行わないでください。また、requires
が記述されているため、コンパイルは/home/ubuntu/java-module/source/jp.paiza.testb/module-info.java
から行ってください。
演習課題「exports 後の実行を試してみよう」
現在、/home/ubuntu/java-module/source/jp.co.paiza.testa/jp/co/paiza/testa/Testa.java
にて、記述した内容を実行しようとしています。
その際、別のモジュールのクラスである、Practicea
とPracticeb
を利用しようとしています。
しかし、依存関係の都合上/home/ubuntu/java-module/source/jp.co.paiza.testa
からコンパイルしようとするとエラーが発生してしまいます。
モジュールと Javaファイル のコンパイルを/home/ubuntu/java-module/source/jp.paiza.testb/module-info.java
を先に行った後で、exports
を使っている場合も正しく実行されるよう Javaコマンド を使用してください。
期待する出力値
Testa
Practicea
Practiceb
#03:requires と exports
このチャプターでは、モジュール・ディレクティブのrequires, exportsについて学習します。
・jp.co.paiza.ajavac -d classes/jp.co.paiza.a source/jp.co.paiza.a/module-info.java source/jp.co.paiza.a/jp/co/paiza/a/A.java
・jp.paiza.bjavac -d classes/jp.paiza.b source/jp.paiza.b/module-info.java source/jp.paiza.b/jp/paiza/b/*/*.java
・jp.co.paiza.ajavac -d classes/jp.co.paiza.a --module-path classes/jp.paiza.b source/jp.co.paiza.a/module-info.java source/jp.co.paiza.a/jp/co/paiza/a/A.java
・jp.co.paiza.ajava -p classes/jp.co.paiza.a:classes/jp.paiza.b -m jp.co.paiza.a/jp.co.paiza.a.A