Java
 Computer >> コンピューター >  >> プログラミング >> Java

Java 9ですべてのモジュール名を一覧表示する方法

Java 9では、モジュール(Module)という新しい概念が導入されました。モジュールとは、コードデータから構成される、名前付きの自己記述的な集合体です。コードは、Javaクラスやインターフェースといった型を含むパッケージ群として整理され、データにはリソースファイルやその他の静的な情報が含まれます。

各モジュールは、次の3つの要素を持っています。

  • モジュール名:モジュールを一意に識別する名前
  • 依存関係:そのモジュールが必要とする他のモジュール
  • エクスポートされたパッケージ:外部に公開されるパッケージの一覧

モジュール定義の基本構文

モジュールは、module-info.java ファイル内で以下のように宣言します。

module com.tutorialspoint.mymodule {
   // モジュールの設定をここに記述
}

ModuleLayerクラスですべてのモジュール名を取得する

Java 9以降で利用可能な ModuleLayer クラスを使用すると、現在のランタイムに読み込まれているすべてのモジュール情報にアクセスできます。ModuleLayer.boot() メソッドはブートレイヤー(JDK自体のモジュールを含むレイヤー)を返し、その modules() メソッドを呼び出すことで、読み込まれている全モジュールのリストを取得できます。

以下の例では、ラムダ式と forEach() を組み合わせて、すべてのモジュール名をコンソールに出力しています。

サンプルコード

public class AllModulesNamesTest {
   public static void main(String args[]) {
      ModuleLayer.boot().modules().forEach((module) -> {
         System.out.println(module.getName());
      });
   }
}

実行結果

jdk.security.jgss
jdk.jartool
javafx.swing
java.security.sasl
jdk.plugin.dom
jdk.dynalink
jdk.javaws
jdk.internal.opt
java.desktop
jdk.snmp
javafx.media
javafx.web
jdk.jsobject
jdk.javadoc
java.security.jgss
jdk.compiler
oracle.net
jdk.deploy
jdk.crypto.mscapi
jdk.jstatd
jdk.crypto.cryptoki
jdk.accessibility
java.sql.rowset
java.prefs
java.instrument
jdk.jconsole
jdk.scripting.nashorn
jdk.internal.le
java.xml
jdk.packager
javafx.base
java.compiler
jdk.localedata
jdk.editpad
jdk.management.jfr
jdk.plugin
jdk.packager.services
java.naming
jdk.security.auth
java.datatransfer
javafx.graphics
jdk.xml.dom
javafx.fxml
jdk.zipfs
oracle.desktop
jdk.jdeps
jdk.net
jdk.internal.ed
jdk.internal.jvmstat
jdk.management.agent
jdk.jshell
java.sql
java.scripting
java.se
jdk.naming.dns
jdk.jdwp.agent
jdk.jfr
jdk.management
jdk.charsets
java.base
jdk.jdi
jdk.unsupported
java.xml.crypto
jdk.attach
jdk.management.resource
java.management
jdk.httpserver
jdk.crypto.ec
java.management.rmi
java.smartcardio
jdk.naming.rmi
java.jnlp
jdk.jlink
javafx.controls
jdk.management.cmm
java.logging
java.rmi
jdk.sctp

このように、java.base をはじめとするJDK標準モジュールや、javafx.* 系のモジュールなど、環境にインストールされているすべてのモジュール名を簡単に確認できます。モジュール名は getName() メソッドで取得でき、モジュールシステムのデバッグや依存関係の調査に役立ちます。

  1. Javaで編集可能なJLabelを実装する方法

    JLabelとはJLabelクラスはJComponentクラスを継承しており、JLabelのオブジェクトを使用することで、GUI上にテキストによる説明や情報を表示できます。JLabelの主な特徴は以下のとおりです。1行の読み取り専用テキスト、画像、またはその両方を表示できる重要なメソッドとして、setText()、setIcon()、setBackground()、setOpaque()、setHorizontalAlignment()、setVerticalAlignment()などが用意されているPropertyChangeListenerインターフェースを明示的に登録して、プロパティの変

  2. JavaのJToggleButton実装ガイド:ON/OFF切替ボタンの作り方を解説

    JToggleButtonとは JToggleButtonはAbstractButtonを拡張したクラスで、クリックするたびにONとOFFが切り替わるトグルボタンを実現するために使用されます。通常のボタンと異なり、押した状態を保持できるのが特徴です。 JToggleButtonの主な特徴 最初に押されたときは押し込まれた状態のままとなり、もう一度押してはじめて元の状態(押されていない状態)に戻ります。 ボタンが押されるたびにActionEventが発生します。 さらに、JToggleButtonはItemEventも発生させることができます。このイベントは、選択状態という概念を持つコンポー