>Java >java지도 시간 >Java 9에서 클래스로더가 있는 모든 모듈을 어떻게 표시할 수 있나요?

Java 9에서 클래스로더가 있는 모든 모듈을 어떻게 표시할 수 있나요?

PHPz
PHPz앞으로
2023-08-19 20:09:081406검색

在Java 9中,我们如何显示所有具有类加载器的模块呢?

Java 9 이전에는 확장 프로그램과 애플리케이션 클래스 로더가 java.net.URLClassLoader 클래스의 인스턴스였습니다. Java 9에서는 클래스 로더의 분류가 변경되어 외부 클래스 로더 대신 플랫폼 클래스 로더가 있습니다. 플랫폼 클래스 로더를 사용하는 목적은 부트스트랩 클래스 로더에 의해 로드된 클래스가 기본적으로 모든 권한을 갖기 위한 것입니다.

아래 예에서는 클래스 로더가 있는 모든 모듈을 표시할 수 있습니다.

예제

import static java.util.Objects.isNull;

public class Java9ClassLoaderTest {
   public static void main(String args[]) {
<strong>      ModuleLayer </strong>layer = <strong>ModuleLayer.boot()</strong>;
      layer.modules().forEach(module -> {
<strong>         ClassLoader </strong>classLoader = module.<strong>getClassLoader()</strong>;
         String classLoaderName = <strong>isNull</strong>(classLoader) ? "bootstrap" : classLoader.<strong>getName()</strong>;
         System.out.println(classLoaderName + ": " + module.<strong>getName()</strong>);
      });
   }
}

输출

<strong>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</strong>

위 내용은 Java 9에서 클래스로더가 있는 모든 모듈을 어떻게 표시할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 tutorialspoint.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제