gpt4 book ai didi

javapackager - 可以使用 javapackager 部署 jlinked 运行时吗?

转载 作者:行者123 更新时间:2023-12-04 12:27:27 33 4
gpt4 key购买 nike

javapackager的说明就在 Java SE 部署指南中的示例 2-1/Self-Contained Application Packaging 的上方声明 -deploy 命令中需要一个 jar 文件。

如果我使用模块化 jar,我会收到以下错误消息:

Exception: java.lang.Exception: Error: Modules are not allowed in srcfiles: [dist\tcdmod.jar].



如果我使用等效的非模块化 jar,则生成的包包括完整的运行时。但我想使用/dist 文件夹中的 jlink 减少的运行时间。

javapackager 命令可以使用 jlink 生成的运行时部署吗?
如何?

标题为“自定义 JRE”的部分没有提及 javapackager命令。

以下部分“模块化应用程序打包”具有以下行:

Use the Java Packager tool to package modular applications as well as non-modular applications.



Java Packager 工具是否不同于 javapackager? ?没有使用 javapackager 的示例在这个部分。

这是我使用的 javapacker 命令:
javapackager -deploy -native -outdir packages -outfile ToneCircleDrone -srcdir dist -srcfiles tcdplain.jar -appclass com.adonax.tanpura.TCDLaunch -name "ToneCircleDrone" -title "ToneCircleDrone test"

javapackager 文档中的说明没有提及使用 jlink 运行时的场景。有一个 Bundler 参数 -Bruntime 但它仅用于指向已安装的运行时,而不是系统默认值 AFAIK。

最佳答案

javapackager JDK 9 及更高版本提供使用 jlink生成 jre 图像:

For self-contained applications, the Java Packager for JDK 9 packages applications with a JDK 9 runtime image generated by the jlink tool. To package a JDK 8 or JDK 7 JRE with your application, use the JDK 8 Java Packager.

https://docs.oracle.com/javase/9/tools/javapackager.htm#JSWOR719



您甚至可以将参数传递给 jlink使用 -BjlinkOptions=<options>
此外, -Bruntime仅对使用 -deploy -native jnlp 部署的软件包有效

用于编译模块化应用程序,而不是 -srcdir , 使用 --module-path <dir> ,然后使用 -m <module name> 指定主模块.

编辑:虽然没有关于 -BjlinkOptions 的文档,它存在于 javapackager 源代码中

jdk.packager/jdk.packager.internal.legacy.JLinkBundlerHelper

https://github.com/teamfx/openjfx-10-dev-rt/blob/bf971fe212e9bd14b164e4c1058bc307734e11b1/modules/jdk.packager/src/main/java/jdk/packager/internal/legacy/JLinkBundlerHelper.java#L96



示例用法: -BjlinkOptions=compress=2将使 javapackager运行 jlink--compress=2标志,生成具有 Zip 级别压缩的 JRE 图像。

此外,运行 javapackager带有标志 -Bverbose=true将准确显示哪些参数被传递给 jlink在输出中有这样一行:

userArguments = {strip-debug=1 compress=2}

关于javapackager - 可以使用 javapackager 部署 jlinked 运行时吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50361280/

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