首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jlinked运行时可以与javapackager一起部署吗?

jlinked运行时可以与javapackager一起部署吗?
EN

Stack Overflow用户
提问于 2018-05-16 09:39:25
回答 1查看 1.3K关注 0票数 7

Java部署指南/Self-Contained Application Packaging中的Example 2-1上的javapackager说明指出,-deploy命令中需要一个jar文件。

如果我使用模块化jar,我会得到这个错误消息:

异常: java.lang.Exception:错误: srcfiles: dist\tcdmod.jar中不允许使用模块。

如果我使用等效的非模块化jar,结果包将包含完整的运行时。但我想使用我在/dist文件夹中使用jlink时缩短的运行时间。

javapackager命令可以与jlink生成的运行时一起部署吗?多么?

标题为“定制JRE”的一节没有提到javapackager命令。

下面的“为模块化应用程序打包”一节有以下一行:

使用Java Packager工具打包模块化应用程序和非模块化应用程序。

Java Packager工具与javapackager不同吗?本节中没有使用javapackager的示例。

下面是我使用的javapacker命令:

代码语言:javascript
复制
javapackager -deploy -native -outdir packages -outfile ToneCircleDrone -srcdir dist -srcfiles tcdplain.jar -appclass com.adonax.tanpura.TCDLaunch -name "ToneCircleDrone" -title "ToneCircleDrone test"

javapackager文档中的说明没有提到使用jlink运行时的场景。有一个捆绑包参数-Bruntime,但它仅用于指向系统默认设置AFAIK之外的已安装运行时。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-05-31 05:50:09

JDK9及更高版本提供的javapackager使用jlink生成jre镜像:

对于自包含的应用程序,Java Packager For JDK9将应用程序与

工具生成的JDK9运行时映像打包在一起。要将JDK 8或JDK 7 JRE打包到应用程序中,请使用JDK 8 Java Packager。

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

您甚至可以使用-BjlinkOptions=<options>将参数传递给jlink

此外,-Bruntime仅对使用-deploy -native jnlp部署的包有效

要编译模块化应用程序,请使用--module-path <dir>而不是-srcdir,然后使用-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运行带有Zip标志的jlink,生成带有Zip级别压缩的--compress=2图像。

此外,使用-Bverbose=true标志运行javapackager将确切地显示哪些参数正在传递给jlink,并在输出中显示如下所示的一行:

条带调试={

- userArguments =1 compress=2}

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50361280

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档