javac --add-modules 添加多个模块

Javac --add-modules adding multiple modules

我有一个很简单的Javaclass

public class TestAnnotation {
    public static void main(String[] args) {
        System.out.println(javax.annotation.Generated.class.getName());
    }
}

正如预期的那样,这不会使用 JDK 9

进行编译
"c:\Program Files\Java\jdk-9.0.1\bin\javac.exe" TestAnnotation.java
TestAnnotation.java:3: error: package javax.annotation is not visible
                System.out.println(javax.annotation.Generated.class.getName());
                                        ^
  (package javax.annotation is declared in module java.xml.ws.annotation, which is not in the module graph)
1 error

忽略错误消息(并使用 java.xml.ws 而不是建议的 java.xml.ws.annotation),我可以使用

编译它
"c:\Program Files\Java\jdk-9.0.1\bin\javac.exe" --add-modules java.xml.ws TestAnnotation.java

然而,查看the module graph模块java.xml.ws不依赖于模块java.xml.ws.annotation,导出 javax.annotation 包。

这怎么可能编译(而且 运行,顺便说一句)?

java.xml.ws 确实依赖于 java.xml.ws.annotationhttp://hg.openjdk.java.net/jdk/jdk/file/68c6f57c40d4/src/java.xml.ws/share/classes/module-info.java#l46

module java.xml.ws {
    requires java.desktop;
    requires java.logging;
    requires java.management;
    requires java.xml.ws.annotation;
    ...

我不知道为什么这张图片中缺少这种依赖关系。可能他们只想显示关键链接。