我正在使用 Netbeans 8.0.2 在 Windows 8.1 64bit 和 4GB RAM 上开发 JavaFX 8 应用程序正在运行 JDK 版本 8u25 64 位。
应用程序平台是JDK version 8u25 32bit,问题是当我构建项目时应用程序运行正常但是当我进行 native 打包时我可以将 32 位 JRE 连同 exe 文件一起用于应用程序 netbeans 输出此消息并跳过构建 native 包:
“由于配置问题跳过了 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 默认平台,并在
build.xml
中更改平台标签到<fx:platform basedir="C:\Program Files (x86)\Java\jdk1.8.0_40\jre"/>
而且 Netbeans 的原生打包非常棒
关于JavaFX 部署问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28843475/