1

Java 9 では、モジュール間のサイクルは許可されていないため、A は B を必要としますが、B は A を必要とすることはできません。

ただし、JDKコードベースを見ると、モジュールjava.managementに含まれ ていることがわかり、モジュールにエクスポートが表示されますexports com.sun.jmx.remote.util to java.management.rmi;java.management.rmicom.sun.jmx.remote.protocol.rmi to java.management;

輸出申告書について、この循環規則が緩和されるのはなぜですか?

module java.management {
    exports javax.management.remote;
    exports javax.management.timer;
    exports sun.management.counter to jdk.management.agent;
    exports com.sun.jmx.remote.util to java.management.rmi;
    exports com.sun.jmx.remote.security to jdk.management.agent, java.management.rmi;
    exports sun.management to jdk.management, jdk.management.agent, jdk.jconsole;
    exports javax.management.modelmbean;
    exports com.sun.jmx.remote.internal to jdk.management.agent, java.management.rmi;
    exports java.lang.management;
    exports sun.management.counter.perf to jdk.management.agent;
    exports javax.management;
    exports javax.management.relation;
    exports sun.management.spi to jdk.management;
    exports javax.management.openmbean;
    exports javax.management.monitor;
    exports javax.management.loading;

    uses javax.management.remote.JMXConnectorProvider;
    uses javax.management.remote.JMXConnectorServerProvider;
    uses sun.management.spi.PlatformMBeanProvider;

    provides javax.security.auth.spi.LoginModule with com.sun.jmx.remote.security.FileLoginModule;
}

module java.management.rmi {
    requires transitive java.management;
    requires transitive java.rmi;
    requires java.naming;

    exports javax.management.remote.rmi;
    exports com.sun.jmx.remote.protocol.rmi to java.management;
    exports com.sun.jmx.remote.internal.rmi to jdk.management.agent;

    provides javax.management.remote.JMXConnectorServerProvider with com.sun.jmx.remote.protocol.rmi.ServerProvider;
    provides javax.management.remote.JMXConnectorProvider with com.sun.jmx.remote.protocol.rmi.ClientProvider;
}
4

0 に答える 0