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

Java 9でクラスローダーを使用してすべてのモジュールを表示するにはどうすればよいですか?


Java 9より前は、拡張機能とアプリケーションクラスローダーは java.net.URLClassLoaderのインスタンスです。 クラス。 Java 9では、クラスローダーの分類が変更されました。外部クラスローダーの代わりに、プラットフォームクラスローダーがあります。 。プラットフォームクラスローダーを使用する目的は、ブートストラップクラスローダーによってロードされるクラスです。 デフォルトですべての権限があります。

以下の例では、クラスローダーを使用してすべてのモジュールを表示できます。

import static java.util.Objects.isNull;

public class Java9ClassLoaderTest {
   public static void main(String args[]) {
      ModuleLayer layer = ModuleLayer.boot();
      layer.modules().forEach(module -> {
         ClassLoader classLoader = module.getClassLoader();
         String classLoaderName = isNull(classLoader) ? "bootstrap" : classLoader.getName();
         System.out.println(classLoaderName + ": " + module.getName());
      });
   }
}
出力
app: jdk.internal.ed
platform: jdk.scripting.nashorn
platform: java.compiler
platform: java.security.jgss
platform: jdk.plugin.dom
bootstrap: jdk.net
bootstrap: java.management
app: jdk.jdeps
platform: javafx.base
app: jdk.editpad
bootstrap: java.security.sasl
platform: java.sql.rowset
bootstrap: java.datatransfer
app: jdk.compiler
platform: java.scripting
platform: jdk.naming.dns
platform: jdk.crypto.mscapi
bootstrap: java.xml
platform: jdk.localedata
platform: javafx.swing
bootstrap: jdk.unsupported
platform: jdk.plugin
bootstrap: jdk.snmp
bootstrap: jdk.naming.rmi
app: jdk.internal.le
platform: javafx.web
platform: jdk.dynalink
platform: jdk.accessibility
bootstrap: java.rmi
platform: jdk.jsobject
platform: java.sql
app: jdk.attach
bootstrap: jdk.management.cmm
platform: jdk.security.auth
platform: java.xml.crypto
bootstrap: jdk.jfr
bootstrap: jdk.management.jfr
platform: jdk.security.jgss
app: jdk.packager.services
bootstrap: java.base
app: jdk.internal.opt
bootstrap: java.prefs
bootstrap: java.management.rmi
platform: jdk.zipfs
platform: java.jnlp
app: jdk.packager
platform: oracle.net
app: jdk.jlink
bootstrap: jdk.management.agent
bootstrap: java.logging
app: jdk.jdi
app: jdk.jstatd
platform: java.se
app: jdk.javadoc
platform: jdk.charsets
platform: java.smartcardio
app: jdk.jconsole
bootstrap: jdk.sctp
platform: javafx.graphics
bootstrap: jdk.management.resource
app: jdk.jdwp.agent
app: jdk.internal.jvmstat
platform: javafx.controls
platform: jdk.crypto.cryptoki
platform: javafx.media
bootstrap: jdk.httpserver
platform: oracle.desktop
bootstrap: java.naming
app: jdk.jshell
app: jdk.jartool
platform: jdk.deploy
bootstrap: java.desktop
platform: javafx.fxml
bootstrap: java.instrument
platform: jdk.crypto.ec
bootstrap: jdk.management
platform: jdk.xml.dom
platform: jdk.javaws

  1. Javaで異なる色とフォントのJLabelテキストを実装するにはどうすればよいですか?

    JLabel JLabel クラスはJComponentを拡張できます クラスとJLabelのオブジェクトは、GUI上のテキスト命令または情報を提供します。 JLabel 1行の読み取り専用テキストを表示できます 、画像 またはテキストと画像の両方。 JLabel 異なる色とフォントで1行のテキストを表示することもできます テキストの使用 HTML内のタグ タグ。 JLabel PropertyChangeListenerを明示的に生成できます インターフェース。 例 import java.awt.*; import java.awt.event.*;

  2. JavaでJToggleButtonを実装するにはどうすればよいですか?

    JToggleButton JToggleButton AbstractButtonの拡張です また、オンに切り替えることができるボタンを表すために使用できます。 およびオフ 。 JToggleButtonの場合 を初めて押すと、押したままになり、2回押すと離すことができます。 JToggleButton ActionEventを生成します 押すたびに。 JToggleButton ItemEventを生成することもできます 、このイベントは、選択の概念をサポートするコンポーネントによって使用されます。 JToggleButtonの場合 を押すと選択されます。