JDK 9 Jlink дает ошибку: - должен быть указан выход - PullRequest
0 голосов
/ 19 мая 2018

Я новичок в 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

, я получаю следующую ошибку.

Ошибка: - должен быть указан выход

Может кто-нибудь сказать мне, что я делаю неправильно?

Заранее спасибо!

...