Java 是否--add打开了JPMS中动态创建的层的工作?

Java 是否--add打开了JPMS中动态创建的层的工作?,java,java-9,java-module,java-platform-module-system,Java,Java 9,Java Module,Java Platform Module System,我有一个JPMS框架,可以动态创建JPMS层并向其中添加模块。在一些测试之后,在我看来,--add opensJVM参数仅适用于启动层,我指的是应用程序启动时创建的层 那么,问题是,--add opens是否适用于JPMS中动态创建的层 具体例子 --add-opens java.base/java.lang=weld.servlet.shaded 如果weld.servlet.shaded位于动态创建的层中,java.base/java.lang是否会打开到weld.servlet.shad

我有一个JPMS框架,可以动态创建JPMS层并向其中添加模块。在一些测试之后,在我看来,
--add opens
JVM参数仅适用于
启动层,我指的是应用程序启动时创建的层

那么,问题是,
--add opens
是否适用于JPMS中动态创建的层

具体例子

--add-opens java.base/java.lang=weld.servlet.shaded

如果
weld.servlet.shaded
位于动态创建的层中,
java.base/java.lang
是否会打开到
weld.servlet.shaded

--add opens CLI选项仅适用于启动层


--add opens CLI选项仅适用于启动层。@AlanBateman感谢您的回答。这很糟糕,我认为这是JPMS的一个明显缺陷。你们能说我是否应该打开特性请求,或者它不可能被实现吗?这不是一个缺陷或疏忽。如果您真的想这样做,那么您需要在启动层中打开创建子层的模块的包。然后,它可以使用
Object.class.getModule().addOpens(“java.lang”,weldModule)
将其打开到weld模块。这是一个变通办法,直到Weld被固定为不侵入非公开方法。