Допустим, я разрабатываю модульное приложение, состоящее из 2 модулей: com.spacey.explorer
, который зависит от модуля com.spacey.rocket
. У меня есть их модульные файлы JAR в каком-то bin
каталоге.
И я хочу подготовить легкую JRE для ее запуска. Очевидно, я использую инструмент jlink:
$ jlink --module-path /opt/jdk-9/jmods:../bin --add-modules com.spacey.explorer --output ~/custom-jre3
Теперь, когда я перечисляю модули в своей JRE, я получаю следующее:
$ java --list-modules
com.spacey.explorer
com.spacey.rocket
java.base@9
То есть мои прикладные модули включены в JRE. Но если бы я хотел создать JRE, в котором были бы только модули, созданные с помощью JDK, которых достаточно для запуска моего приложения и чтобы мои модули приложения оставались отдельными, я должен знать, что мой JDK зависимости есть (в примере это просто java.base
) и укажите их явно следующим образом:
$ jlink --module-path /opt/jdk-9/jmods --add-modules java.base --output ~/custom-jre3
Есть ли способ заставить jlink делать это за меня? Или какой-либо инструмент, который мог бы выяснить эти зависимости, происходящие от JDK, за меня?