簡體   English   中英

JDK 9 jlink 給出錯誤:必須指定 --output

[英]JDK 9 jlink is giving Error: --output must be specified

我是 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) 在test目錄下創建如下目錄結構。

/moduleExamples/readerDecoderExample/src/main/java
/moduleExamples/readerDecoderExample/src/main/java/reader
/moduleExamples/readerDecoderExample/src/main/java/decoder

(3) 將 reader module-info.java, org/reader/Reader.java 添加到 reader 目錄。 將decoder module-info.java, com/decoder/Decoder .java 添加到decoder目錄。

(4) 導航到 test/moduleExamples/readerDecoderExample 目錄,運行以下命令

export JAVA_HOME=test/jdk9.0.4 mkdir mods export 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)運行Decoder類

${JAVA_HOME}/bin/java --module-path mods -m decoder/com.decoder.Decoder input.txt

(7) mkdir mlibs

(8) 使用以下命令將模塊打包成jar。

    ${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

我收到以下錯誤。

錯誤:必須指定 --output

有人可以告訴我我做錯了什么嗎?

先感謝您!

我在工作中做演示時在 gitbash 上遇到了同樣的問題。 我以前在 mac 上試過, ${JAVA_HOME}/jmods;mlibs/reader@1.0.jar工作正常,只需將:改為; 轉移到PC時。

該錯誤似乎與 jmods 相關,因此我將其刪除並且運行良好 - 不確定如何或為什么,這種方法在 mac 上不起作用。

以下應該工作:

${JAVA_HOME}/bin/jlink --module-path mlibs/reader@1.0.jar --add-modules reader@1.0 --output out

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM