gpt4 book ai didi

java 9 : JLink created invalid images - missing module executable script

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:58:03 37 4
gpt4 key购买 nike

我正在创建一个包含 3 个模块 userdeptaccount 的示例应用程序。在我的用户模块中,我有一个主类并使用以下命令编译我的模块:

javac -d target --module-source-path src $(find -name "*.java")

编译完成后执行如下命令运行:

java -p target -m com.user/com.user.info.Launcher

运行java模块成功后的输出。但是当尝试使用 jlink 创建运行时图像时,图像创建成功但模块可执行脚本不存在。为了创建图像,我使用以下命令:

jlink --module-path $JAVA_HOME/jmods:target --add-modules com.user --output my-app

在运行时镜像中,我有bin 目录,但该目录仅包含javakeynote 脚本。我也期待用户主类脚本来执行我的应用程序。

我的 Java 版本如下:

java version "9-ea"
Java(TM) SE Runtime Environment (build 9-ea+165)
Java HotSpot(TM) 64-Bit Server VM (build 9-ea+165, mixed mode)

我该如何解决这个问题?

最佳答案

jlink创建一个运行时 VM 镜像,其中仅包含所需的模块。

由于您指定了 --add-modules com.user该图像将包含 com.user模块,以及它(直接或间接)依赖的所有模块。

您可以使用 java 运行您的应用程序bin 中的二进制文件生成图像的文件夹,并使用命令:

java com.user.info.Launcher

你也可以有 jlink使用 --launcher <command>=<module>/<main> 生成启动器脚本选项。在您的情况下,您可以执行以下操作:

jlink --module-path $JAVA_HOME/jmods:target --add-modules com.user --output my-app --launcher launch=com.user/com.user.info.Launcher

然后,您可以使用 launch来自 bin运行应用程序的目录。

关于java 9 : JLink created invalid images - missing module executable script,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44085367/

37 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com