Ваши проблемы вызваны изменениями Project Jigsaw, внесенными в сборку Java 9 EA, которая, по вашему мнению, использовали. JEP 220 описывает их.
В разделе Удалено: rt.jar
и tools.jar
это описано более подробно, но в разделе Риски и предположения содержится хорошее резюме:
Образы JDK и JRE, как отмечалось выше, больше не будут содержать файлы lib/rt.jar
, lib/tools.jar
, lib/dt.jar
и другие внутренние файлы jar. Существующий код, предполагающий существование этих файлов, может работать некорректно.
Итак, как вы заметили, эти файлы исчезли. Дальше:
Файлы классов и ресурсов, ранее найденные в lib/tools.jar
и видимые только тогда, когда этот файл был добавлен в путь к классам, теперь в образе JDK будут видны через системный загрузчик классов или, в некоторых случаях, загрузчик классов начальной загрузки. Однако модули, содержащие эти файлы, не будут упомянуты в пути к классу приложения, т.е., в значении системного свойства java.class.path
.
Таким образом, классы из tools.jar
перемещены в модули, но, похоже, они могут быть недоступны пользователю. Вам следует использовать jdeps из недавней сборки Jigsaw. ...
- ... чтобы определить зависимости вашего модуля:
$jdeps -M -s $your_JAR
- ... для определения зависимостей от внутренних API JDK:
jdeps -jdkinternals $your_JAR
Если вам повезло, API, который вы используете, был опубликован (тогда он не будет отображаться во втором анализе) или имел общедоступную альтернативу (которая будет указана во втором анализе). В противном случае вам следует обратиться к списку рассылки Jigsaw и обратиться за помощью. там, явно отметив, какие API вы используете и для чего.
person
Nicolai Parlog
schedule
06.02.2016