日本憲政史上最強の政策ブログを目指す!

反逆する武士

情報技術(IT)

【Java SE 11 Silver】黒本でプログラミングのお勉強【第11章:モジュールシステム】

投稿日:

徹底攻略Java-SE-11-Silver問題集1Z0-815対応

大変お世話になっております。
反逆する武士

uematu tubasaです。
初回投稿日時:2023年7月9日(令和5年7月9日)

本日が黒本のお勉強については最終回となります。

明日以降は政治経済系の記事に戻りたいと思います。

頻繁にはブログ記事をアップできないと思いますので、何卒よろしくお願い申し上げます。

ITエンジニアでの本業が多忙過ぎて、本当に苦しいことになっております。

モジュールシステムの基礎知識を問う問題

1、モジュールの設定はmodule-info.javaに記述する。

2、モジュールの設定では、どのパッケージを公開するのか記述する。

まずは上記を暗記することから始める。

モジュールの実行に関する問題

例題)libディレクトリにあるsampleモジュールを実行したい。エントリーポイントを持つクラスをcom.test.Helloとしたおきのコマンドを答えよ。

回答)java --module-path lib -m sample/com.test.Hello

コンパイル後にjavaコマンドでモジュールのクラスを実行するには、javaコマンドの--module-pathオプションでモジュールを探すためのルートディレクトリを指定し、-mオプションで実行したモジュールクラスを指定します。

モジュールに含まれるクラスを事項するには、モジュール名と実行したいクラスの完全修飾クラス名の間をスラッシュ「/」で区切ります。

モジュールはjarコマンドで1つにまとめることができます。

jarコマンドは複数のクラスをまとめたjarファイルを作るためのコマンドです。

以下のコマンドはhello.jarというファイルを作成するコマンドです。

エントリーポイントを持っているクラスは「com.sample.Main」

このjarファイルには-Cオプションで指定したmods/helloディレクトリ内にあるファイルが含まれます。

jar -create --file=mlib/hello.jar --main-class=com.sample.Main -C mods/hello .

モジュールの公開とパッケージの利用の設定に関する問題

【問題】

sampleモジュールは、com.sampleパッケージを公開し、testモジュールを利用している。

module-info,javaの設定として、正しいものを記述しなさい。

【回答】

module sample {

  exports com.sample;

  requires test;

}

これが構文なので、覚える必要あり。

別言語を覚えていて良かったと本当に実感しています。

どの言語かは明言しませんが、これは覚えやすい。

モジュールの依存関係の問題

【問題】以下のようなモジュールグラフがあったとき、module1でmodule3に属するパッケージのクラスを利用する際の正しい説明をしなさい。

module1

module2

module3

【回答】

module2のmodule-info.javaでmodule3をrequires transitiveで宣言する。

【解説】

module2が必要とするモジュールの設定をmodule1に伝搬するためには、次のようにtransitiveを付けてrequiresを記述します。

module module2 {

  requires transitive module3;

}

プラットフォームモジュールに関する問題

【問題】あらかじめ用意されているモジュールのうち、標準で組み込まれるモジュールは何か。

【回答】java.base

【解説】

プラットフォームモジュールには、いくつか種類がありますが、java.lang、java.util、java.ioなどのどんなプログラムであっても使うであろうパッケージをまとめたものが、java.baseモジュールです。

モジュールの情報を確認するためのコマンドに関する問題

【問題】module-info.javaに設定したモジュールの設定情報を調べるためのコマンドを2つ記述しなさい。

【回答】

java -describe-module

jmod describe

【解説】

そのモジュールがどのようなパッケージを公開しているのか、またどのようなモジュールに依存しているか、module-info.java以外で確認するには以下の2つの方法があります。

1、java -describe-module

2、jmod describe

非公開パッケージの一時的な利用に関する問題

【問題】

module-info.javaでexportsされていないパッケージを、一時的に利用してコンパイルしたい。

javac コマンドのオプションを記述しなさい。

【回答】--add-exports

【解説】

--add-exportsオプションには「対象モジュール/公開するパッケージ=利用するモジュール」の書式で指定します。

以上です。

――――――――――――――――――――――――――――――――――――――――
最後までお読みいただき、ありがとうございます。
★★★ブログTOP★★★
記事が参考になりましたら、ブログランキングで応援お願いします。

――――――――――――――――――――――――――――――――――――――――

-情報技術(IT)
-

Copyright© 反逆する武士 , 2024 All Rights Reserved Powered by AFFINGER5.