由於新模塊系統的原因,Java 9(jdk-9 + 170)默認情況下不允許應用程序查看來自JDK的所有類,而不像以前的所有Java版本。Java 9中--add-exports和--add-opens有什麼區別?
要解決這一點,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更新以解釋它。
值得補充的是,在運行時'-add-opens'涉及'-add-exports' – ZhekaKozlov
這兩個項目符號描述了可由'--add-opens'訪問的類型/成員是'加入 - 出口「,所以我不認爲說一個牽連對方增加了任何價值的描述。 – Nicolai
馬克今天更新了頁面,現在在JEP 261中對此進行了解釋:http://openjdk.java.net/jeps/261 – vip