Как запустить изображения, созданные JDK 9 jlink?
Я следую головоломки быстрый старт здесь. Я успешно запустил дано:
jlink --module-path $JAVA_HOME/jmods:mlib --add-modules com.greetings --output greetingsapp
это создает "образ времени выполнения", который является разнесенной структурой каталогов, которая выглядит так:
~ tree -d greetingsapp
greetingsapp
├── bin
├── conf
│ └── security
│ └── policy
│ ├── limited
│ └── unlimited
├── include
│ └── darwin
├── legal
│ └── java.base
└── lib
├── jli
├── security
└── server
как я могу запустить это? Я ожидал двоичный исполняемый файл, а не взорванное дерево каталогов.
на есть java
и keytool
. Я ничего не вижу .файлы jar или .файлы классов для запуска через пакет java
выполнимый.
1 ответов
выполнить, сделайте следующее:
greetingsapp/bin/java -m com.greetings/com.greetings.Main
или, вы можете иметь jlink построить сценарий запуска, который делает это
jlink --module-path $JAVA_HOME/jmods:mlib --add-modules com.greetings --output greetingsapp --launcher launch=com.greetings/com.greetings.Main
а затем запустить с:
greetingsapp/bin/launcher
форма той же документации :-
$ java -p mods -m com.greetings/com.greetings.Main
может быть выполнен для запуска Main
класс из структуры модуля без связывания с помощью jshell
как хорошо.
и jlink
является инструментом компоновщика и может использоваться для связывания набора модулей вместе с их транзитивные зависимости, чтобы создать пользовательский модульный образ времени выполнения, называемый Модульные Образы Выполнения который может быть выполнен с помощью инструмент JMOD введено с модулями Java 9.
Как указано в комментариях и ответил @Jorn если вы просто намерены выполнить основной класс.
вы можете запустить приложение, используя двоичный файл java в bin папка сгенерированного изображения и использование команда:
java com.greetings.Main
С другой стороны, пример создания файла JMOD для использования в качестве модуля далее:
jmod create --class-path mods/com.greetings --cmds commands
--config configfiles --header-files src/h --libs lib
--main-class com.greetings.Main --man-pages man --module-version 1.0
--os-arch "x86_x64" --os-name "Mac OS X"
--os-version "10.10.5" greetingsmod
редактировать: расширить + уточнить ответ, который я искал.