Похоже, что это связано с тем, как Java 9 пытается поддерживать инкапсуляцию для реальных, в отличие от того, как это было сделано в прошлом. Возможно, ваши внутренние классы были подвержены потребителям, потому что ваш публичный API использовал эти внутренние классы. Аналогичные проблемы возникли у внутренних пакетов Sun.
Есть три темы в истории модульности для Java 9:
- в
на модулях
- Скрыть внутренности платформы JDK и JRE (например sun.misc)
- системы модуля для разработчиков приложений
http://paulbakker.io/java/java-9-modularity/
Для вашего конкретного случая внутренние модули солнца недоступны для импорта по умолчанию, и это хорошая вещь.
Тем не менее, модули могут быть добавлены в JShell благодаря исправлению.
Там должно быть «добавить модули» поддержки, а также «добавить экспорт» и «модуль пути», чтобы дать людям возможность исследовать свой собственный модульный код. https://bugs.openjdk.java.net/browse/JDK-8166649
Вы хотите отслеживать, что билет ошибка, чтобы увидеть, когда это исправление доступно. Это было просто разрешено 4 дня назад.
Хорошее исследование! Исправление должно быть доступно в раннем доступе JDK 9 на jdk9.java.net к концу следующей недели. –