【发布时间】:2018-06-03 14:48:03
【问题描述】:
Java SE 部署指南中示例 2-1 上方的 javapackager 说明/Self-Contained Application Packaging 声明 -deploy 命令中需要 jar 文件。
如果我使用模块化 jar,我会收到以下错误消息:
异常:java.lang.Exception:错误:srcfiles 中不允许使用模块:[dist\tcdmod.jar]。
如果我使用等效的非模块化 jar,则生成的包包含完整的运行时。但我想使用 /dist 文件夹中的 jlink 减少的运行时间。
javapackager 命令能否使用 jlink 生成的运行时进行部署? 怎么样?
标题为“自定义 JRE”的部分没有提到 javapackager 命令。
以下“模块化应用程序打包”部分有以下一行:
使用 Java Packager 工具来打包模块化应用程序以及非模块化应用程序。
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。
【问题讨论】:
-
来自 java-gaming.org 的回答表明可以连接到 jlink 运行时。 java-gaming.org/index.php/topic,38682.0.html#msg369300 如果我真的跟进并测试它,我会将此评论提升为“回答”。我可能会接受建议直接将 jlink 与 3rd 方安装程序一起使用。
-
我最终遵循了另一个部署 jlink 应用程序的课程:(1) 命令行编译,(2) 使用命令行 jlink,(3) 使用 Inno Setup 5 打包创建的发行版与 jlink。所有步骤都写在 java-gaming.org 上发布的演练中。 java-gaming.org/topics/deployment-and-packaging/38754/msg/…
标签: javapackager