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).
В чем разница между этими двумя параметрами?
EDIT: JEP 261 обновлен в 2017-09-22, чтобы объяснить это.