当我运行javafxpackager时,我收到以下警告/信息:
No base JDK. Package will use system JRE.
Run Code Online (Sandbox Code Playgroud)
从部署JavaFX应用程序的文档中不清楚 如何指定替代JDK.它没有选择,我可以看到(也许我是盲目的).它是系统属性吗?
谢谢.
jew*_*sea 10
有一个旧的Oracle博客提到了这一点.不知道它是否仍适用于您的案件或与之相关:
自包含应用程序:选择要捆绑的Java运行时
7u6中的Packager工具假设当前的JDK(基于java.home属性)是嵌入式运行时的源.这对于许多场景来说是有用的简化,但是有些情况下能够明确指定嵌入的内容是很方便的.例如,IDE可能使用固定的JDK来构建项目,而这不是您要捆绑到应用程序中的版本.
为了使其更灵活,我们现在允许明确指定基本JDK的位置.它是可选的,如果您不指定它,那么将使用当前的JDK(即此更改完全向后兼容).
标签中添加了新的"basedir"属性.它的值是要使用的JDK的位置.可以指向JDK或JDK顶级文件夹中的JRE.但是,它必须是JDK而不是JRE,因为我们需要其他JDK工具才能正确打包,它必须是与JavaFX捆绑在一起的JDK的最新版本(即Java 7更新6或更高版本).
以下是示例(是任务的一部分):
Run Code Online (Sandbox Code Playgroud)<fx:platform basedir="${java.home}"/> <fx:platform basedir="c:\tools\jdk7"/>提示:此功能使您可以使用JDK 7更新10中的打包工具(并从错误修复程序和下面描述的其他功能中受益)来创建具有捆绑的FCS版本的JRE 7更新6的应用程序包.
使用参数运行时-Bruntime:
javapackager.exe -Bruntime="c:\Program Files\Java\jdk1.8.0_76\jre\" ...
Run Code Online (Sandbox Code Playgroud)
你得到以下信息:
在以下位置使用基本JDK:c:\ Program Files\Java\jdk1.8.0_76\jre
如果它可以帮助任何人,我想使用javapackager捆绑32位Java 8 JRE.我遇到了问题,因为JDK是64位Java 8 JDK.我能够通过将JAVA_HOME设置为32位JRE来解决我的问题.