由于新的模块系统,Java 9 (jdk-9+170) 默认情况下不允许应用程序查看 JDK 中的所有类,这与所有以前的 Java 版本不同。
为了解决这个问题,java
命令行提供了一个新参数--add-exports
,它允许打破封装,如下所示:
java -jar josm.jar --add-exports java.base/sun.security.util=ALL-UNNAMED --add-exports java.base/sun.security.x509=ALL-UNNAMED
这在JEP 261中有很好的解释。
我已经阅读了--add-opens
使用相同语法的类似选项,但尚未更新 JEP 261 来描述它(最后更新:2017/03/08 13:58)。
这两个选项有什么区别?
编辑:JEP 261已于 2017-09-22 更新以解释它。