Java 9 中的 --add-exports 和 --add-opens 有什么区别?

14 浏览
0 Comments

Java 9 中的 --add-exports 和 --add-opens 有什么区别?

Java 9(jdk-9+170)不同于之前的所有Java版本,默认情况下不允许应用程序查看JDK中的所有类,原因是引入了新的模块系统。

为了解决这个问题,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)。

这两个选项有什么区别?

编辑:已经在2017-09-22更新了JEP 261来解释这一点。

0