Я новичок в JDK 9 и пытаюсь использовать jlink для генерации среды выполнения для простого приложения.
У меня есть следующие дескрипторы модуля
module reader{
// no "requires" entries implies no dependency on other modules
// other modules can access org.reader package
// all other packages are implicitly unavailable
exports org.reader;
}
и
module decoder {
// depends on reader module
requires reader;
// exposes com.decoder package to modules which require decoder module
// all other packages in decoder module are implicitly unavailable to other modules
exports com.decoder;
}
Я определил пару простых классов, называемых Reader.java и Decoder.java, и могу их скомпилировать и запустить, выполнив следующие шаги:
(1) Загрузите и разархивируйте JDK и JRE 9.0.4в тестовый каталог
(2) Создайте следующую структуру каталогов внутри тестового каталога.
/moduleExamples/readerDecoderExample/src/main/java
/moduleExamples/readerDecoderExample/src/main/java/reader
/moduleExamples/readerDecoderExample/src/main/java/decoder
(3) Добавить модуль reader-info.java, org / reader / Reader.java в каталог читателей.Добавьте декодер module-info.java, com / decoder / Decoder .java в каталог декодера.
(4) Перейдите в каталог test / moduleExamples / readerDecoderExample, выполните следующие команды
export JAVA_HOME =test / jdk9.0.4 mkdir экспорт модов MODULE_PATH = test / moduleExamples / readerDecoderExample / mods
(5) Компиляция модулей чтения и декодирования
${JAVA_HOME}/bin/javac -d mods --module-source-path src/main/java/ $(find src/main/java -name "*.java")
(6) Запуск класса декодера
${JAVA_HOME}/bin/java --module-path mods -m decoder/com.decoder.Decoder input.txt
(7) mkdir mlibs
(8) Упакуйте модули в банки, используя следующие команды.
${JAVA_HOME}/bin/jar --create --file mlibs/reader@1.0.jar --module-version=1.0 -C mods/reader .
${JAVA_HOME}/bin/jar --create --file mlibs/decoder.jar --main-class=com.decoder.Decoder -C mods/decoder .
(9) В конце шага (8),У меня есть каталог mlibs, как показано ниже
readerDecoderExample/mlibs/decoder.jar
readerDecoderExample/mlibs/reader@1.0.jar
(10) Когда я пытаюсь построить JRE с помощью следующей команды
${JAVA_HOME}/bin/jlink --module-path ${JAVA_HOME}/jmods;mlibs/reader@1.0.jar --add-modules reader@1.0 --output out
, я получаю следующую ошибку.
Ошибка: - должен быть указан выход
Может кто-нибудь сказать мне, что я делаю неправильно?
Заранее спасибо!