4
Java9 - jdk-9+181
intelliJ - 2017.2.2 built on August 9,2017

的实现有点像java.management.rmimodule-info.java

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

    exports com.sun.jmx.remote.protocol.rmi to java.management;

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

对于这两个provides语句,我都看到了编译器警告说明

提供但未导出或使用的服务接口

当我尝试在另一个模块中使用它们时,我最终猜错了:

module interactor {
    requires java.management.rmi;
    uses javax.management.remote.JMXConnectorProvider;
}

警告仍然存在。

此外,我还可以到达java.management's module 找到

uses javax.management.remote.JMXConnectorProvider;
uses javax.management.remote.JMXConnectorServerProvider;

仍然发出此警告的原因是什么,如何解决?

根据评论中的要求附上截图:

在此处输入图像描述

4

1 回答 1

0

对于任何未来的参考,由于 IntelliJ 更新中的一些回归,这可能会变得相关,我自己回答这个问题。

这是 IntelliJ 的一个错误,在IDEA-178041中进行了跟踪,导致:

从用于生成警告的模块图中省略一些 JDK 或库模块。


2017 年 9 月 7 日更新

IntelliJ IDEA 2017.3 EAP版本已修复该问题。

IntelliJ IDEA 2017.3 EAP (Community Edition)
Build #IC-173.2099.14, built on September 6, 2017
JRE: 1.8.0_152-release-915-b11 x86_64
JVM: OpenJDK 64-Bit Server VM by JetBrains s.r.o
于 2017-09-07T18:43:50.927 回答