【问题标题】:jlink module XXX not found找不到 jlink 模块 XXX
【发布时间】:2025-02-13 23:40:02
【问题描述】:

我正在使用 jdk 10、windows 8 和 eclipse 2019 来制作我的 jar 文件。我想使用 jlink 工具制作自定义 jre,我正在解决 jlink 无法检测到由 eclipse 制作的 jar 文件的问题。但是,我已经安装了太多的 java 版本,这是我的命令:

"C:\Program Files\Java\jdk-10.0.2\bin\jlink.exe" --module-path "C:\Users\Hassan\Desktop\test_java.jar";"C:\Program Files\Java\jdk-10.0.2\jmods" --add-modules test_java --output \Test2\JRE --compress=2

它返回:

Error: Module test_java is not found.

我确定路径是正确的。我不知道发生了什么,我正确地编写了命令以及它们的路径。

【问题讨论】:

    标签: java module jlink runtime-environment


    【解决方案1】:

    我在网上搜索后发现我没有创建模块,我只是创建了一个没有模块的jar文件。为了在我的 java 应用程序中添加一个模块,我必须添加一个名为 module-info.java 的 java 文件,这是一个没有类的特殊文件,它包含里面需要的模块我的 Java 应用程序。 module-info.java 不得属于任何包。在使用 jdeps.exe 确定我的应用程序需要运行哪些模块之后。所以,我在 module-info.java 中写了这段代码:

    module AnyNameWillWork {
      requires java.base;
      requires javafx.base;
      requires javafx.controls;
      requires javafx.graphics;
      exports application;
    }
    

    exports 关键字为所需的模块授予后续包使用它们的权限。我所有的应用程序类都在应用程序包中。

    如果我的回答有错误,请评论我的回答以便更正。

    【讨论】:

    • 创建此文件后,您能否在 ide 中启动应用程序?或者你接下来执行的命令是什么?