5


通常我将我的 Java 应用程序部署为包含 JVM 的包,因此无需在系统上安装 JVM。
顺便说一句:这不是 jnlp 小程序,这是一个普通的 Swing 应用程序。
我使用 ant 的fx:deploy. 这已经适用于 64 位系统。我的问题是,我想将此应用程序部署到 32 位系统并且不让它工作。

这就是我所做的:
我设置了一个干净的 Windows 7(32 位)实例并安装了一个 32 位 JVM。现在我运行我的 ant 脚本来构建一个捆绑的 Java 应用程序,它构建了一个 App.exe。
但是当我尝试通过双击启动此 exe 时,我会收到以下消息框
创建JVM失败
如果单击确定,我会收到另一个消息框
无法启动 JVM
在此之后应用程序终止。
我在网上没有找到任何与捆绑 32/64 位系统相关的内容。
所以如果有人能指出我正确的方向,我会很高兴。
提前谢谢了!
问候,-克里斯-

4

3 回答 3

4

看起来像是为即将推出的 JavaFX 版本(当前称为 2.2.40)修复的已知错误:

在错误案例中,用户提到了一种解决方法:

如果我尝试使用 RT-22610 中记录的解决方法,即将 runtime\jre\bin\msvcr100.dll 端复制到我的应用程序的启动器二进制文件,它会修复它。

我认为该错误已在 JDK 8 中修复,因此另一种可能的解决方法是下载JDK 8 早期访问版本并使用那里的打包工具打包 Java 7 应用程序(尽管我从未尝试过并且不确定是否它会工作)。

于 2013-05-15T18:36:43.037 回答
2

只是对@jewelsea 的修复的一个小修改:

将 msvcr100.dll 复制到 app/ 文件夹中,而不是将其放在 exe 旁边也可以,并且至少它在某种程度上被隐藏起来了。

于 2013-10-29T14:18:30.690 回答
0

如果您正在生成 MSI,您可以破解 WIX 使用的 WXS 文件,以自动将 msvcr100.dll 复制到应用程序文件夹中。使 FX Deploy 详细会告诉您将临时 WXS 文件放在哪里,您可以复制和修改并使用它来覆盖 WXS,就像您使用程序图标一样。

于 2014-06-20T20:57:26.300 回答