jlink: файлы приложения не создаются в папке / bin - PullRequest
2 голосов
/ 14 июня 2019

Я выполняю приведенную ниже команду для создания изображения.

jlink --module-path jars/:$JAVA_HOME/jmods --add-modules app.main,app.interfaces.impl,app.interfaces.otherimpl --output image

Модуль 'app.main' содержит основной класс.

«app.interfaces.impl» и «app.interfaces.otherimpl» - это модули, которые реализуют интерфейсы в модуле «app.interfaces».

Когда я создаю образ с помощью команды jlink, он создает команды java и keytool в папке bin, но модули не копируются.

$tree
.
├── image
│   ├── bin
│   │   ├── java
│   │   └── keytool

Но когда я выполняю 'java --list-modules', он перечисляет все модули.

$./image/bin/java --list-modules
app.interfaces
app.interfaces.impl
app.interfaces.otherimpl
app.main
java.base@12.0.1
$

Как запустить основной класс из модуля app.main? куда именно скопированы модули?

1 Ответ

0 голосов
/ 14 июня 2019

Как запустить основной класс из модуля app.main?

Помимо этого, для выполнения основного класса вы можете использовать командную строку:

/image/bin/java -m app.main/app.main.MainClass

или используйте параметр --launcher для создания сценария запуска в каталоге bin, например,

--launcher app=app.main/app.main.MainClass

, который создает «app» в каталоге bin.

...