JavaFX 部署问题
JavaFX Deployment Issue
我正在 Windows 8.1 64 位 和 4GB RAM[=32] 上开发 JavaFX 8 应用程序=] 使用 Netbeans 8.0.2 这是 运行 JDK 版本 8u25 64bit.
应用平台是JDK version 8u25 32bit,问题是当我构建项目时应用程序运行正常但是当我进行本地打包时我可以发货32 位 JRE 以及应用程序 netbeans 的 exe 文件输出此消息并跳过构建本机包:
"Bundler Windows 由于配置问题跳过了应用程序映像:FX SDK 和 JRE 运行时之间的位架构不匹配。
修复建议:确保使用具有正确位架构的 JRE 运行时。"
这是来自项目 Build.xml 文件的 My Target 标签:
<target name="-post-jfx-deploy">
<fx:deploy width="${javafx.run.width}" height="${javafx.run.height}"
nativeBundles="image"
outdir="${basedir}/${dist.dir}" outfile="${application.title}">
<fx:platform basedir="${java.home}"/>
<fx:platform basedir="C:\Program Files (x86)\Java\jdk1.8.0_25\jre"/>
<fx:application name="${application.title}" mainClass="${javafx.main.class}"/>
<fx:resources>
<fx:fileset dir="${basedir}/${dist.dir}" includes="*.jar"/>
</fx:resources>
<fx:info title="${application.title}" vendor="${application.vendor}"/>
</fx:deploy>
所以我的问题是为什么 Netbeans 与项目平台的 FX SDK 版本不匹配?尽管我已经在项目设置中指定使用 32 位 JDK 并且在 build.xml 文件中也指定了以及如何使用 32 位 JRE 发布应用程序?。
我终于找到了解决方案,以便在 64 位 Windows 上对 JavaFX 8 应用程序进行原生 32 位 打包.您必须将 Netbeans Default Platform 更改为 32 Bit (x86) JDK 以便解决问题我做了以下操作:-
以管理员身份启动了 Notepad++。
已打开C:\Program Files\NetBeans 8.0.2\etc\netbeans.conf
已更改(我已将 JDK 从 8u25 更新为 8u40)
netbeans_jdkhome="C:\Program Files\Java\jdk1.8.0_40"
到
netbeans_jdkhome="C:\Program Files (x86)\Java\jdk1.8.0_40"
已更改 项目平台为默认平台以匹配 netbeans 默认平台和 已更改 [=13= 中的平台标签]到
<fx:platform basedir="C:\Program Files (x86)\Java\jdk1.8.0_40\jre"/>
而且 Netbeans 进行了原生打包,很有魅力
我正在 Windows 8.1 64 位 和 4GB RAM[=32] 上开发 JavaFX 8 应用程序=] 使用 Netbeans 8.0.2 这是 运行 JDK 版本 8u25 64bit.
应用平台是JDK version 8u25 32bit,问题是当我构建项目时应用程序运行正常但是当我进行本地打包时我可以发货32 位 JRE 以及应用程序 netbeans 的 exe 文件输出此消息并跳过构建本机包:
"Bundler Windows 由于配置问题跳过了应用程序映像:FX SDK 和 JRE 运行时之间的位架构不匹配。
修复建议:确保使用具有正确位架构的 JRE 运行时。"
这是来自项目 Build.xml 文件的 My Target 标签:
<target name="-post-jfx-deploy">
<fx:deploy width="${javafx.run.width}" height="${javafx.run.height}"
nativeBundles="image"
outdir="${basedir}/${dist.dir}" outfile="${application.title}">
<fx:platform basedir="${java.home}"/>
<fx:platform basedir="C:\Program Files (x86)\Java\jdk1.8.0_25\jre"/>
<fx:application name="${application.title}" mainClass="${javafx.main.class}"/>
<fx:resources>
<fx:fileset dir="${basedir}/${dist.dir}" includes="*.jar"/>
</fx:resources>
<fx:info title="${application.title}" vendor="${application.vendor}"/>
</fx:deploy>
所以我的问题是为什么 Netbeans 与项目平台的 FX SDK 版本不匹配?尽管我已经在项目设置中指定使用 32 位 JDK 并且在 build.xml 文件中也指定了以及如何使用 32 位 JRE 发布应用程序?。
我终于找到了解决方案,以便在 64 位 Windows 上对 JavaFX 8 应用程序进行原生 32 位 打包.您必须将 Netbeans Default Platform 更改为 32 Bit (x86) JDK 以便解决问题我做了以下操作:-
以管理员身份启动了 Notepad++。
已打开
C:\Program Files\NetBeans 8.0.2\etc\netbeans.conf
已更改(我已将 JDK 从 8u25 更新为 8u40)
netbeans_jdkhome="C:\Program Files\Java\jdk1.8.0_40"
到
netbeans_jdkhome="C:\Program Files (x86)\Java\jdk1.8.0_40"
已更改 项目平台为默认平台以匹配 netbeans 默认平台和 已更改 [=13= 中的平台标签]到
<fx:platform basedir="C:\Program Files (x86)\Java\jdk1.8.0_40\jre"/>
而且 Netbeans 进行了原生打包,很有魅力