当前位置: 首页 > 知识库问答 >
问题:

JDK 9 jlink给出错误:--必须指定输出

贺元明
2023-03-14
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
${JAVA_HOME}/bin/javac -d mods --module-source-path src/main/java/ $(find src/main/java -name "*.java")
${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 dir

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

共有1个答案

刘兴修
2023-03-14

当我在工作中做演示时,我在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
 类似资料:
  • 我是Liquibase的新手,我尝试将liquibase与postgres数据库一起使用liquibase脚本创建数据库表。我所做的是,我已经手动创建了Postgres表并通过运行命令 mvn液化酶:generateChangeLog 我创建了liquibase-outputChangeLog.xml文件。现在我尝试更新该脚本并在数据库中创建一个表。为此,我将XML代码写入新表的ChangeLog

  • 这里输入图像描述我正在尝试使用GraphQL获取一些数据。代码应该是以下格式的,但是在调试的时候,我出现了如下错误: [{“message”:“\”input\“value必须指定”,“category”:“graphql-input”,“locations”:[{“line”:1,“column”:10}]}]

  • 我总是有相同的错误时安装大口: AssertionError[ERR_ASSERTION]:任务函数必须在Gulp.Task(C:\Users\Thomas\Desktop\Sites CT Graphics\colpaertmarc.be\node\u modules\undertaker\lib\set Task.js:10:3)的Gulp.Task(C:\Users\Thomas\Deskt

  • 我是阿帕奇骆驼的新手。我正试图将头和请求体一起发送到Apache Camel中的路由。 我得到以下错误:

  • 除了查询之外,两者的提取看起来完全相同: 第一个查询返回:  但第二个查询返回错误: 但我得到了同样的错误

  • 问题内容: 我正在使用Python编写一些加密算法,但是我以前从未使用过Python。 首先,看一下这段代码,然后我将解释这个问题, x和y的值为, 我不明白代码的第三行。为了理解第三行,我不得不研究函数,我遇到了这个问题, zip函数帮助元组 根据这个问题的答案,代码, 将输出, 但是当我尝试打印时, 我得到这个输出, 为什么我的输出与原始输出不同? 问题答案: 在Python 3中返回一个迭代