2013-05-15 21 views
5


通常我將我的Java應用程序部署爲包含JVM的捆綁包,因此不需要在系統上安裝JVM。
Btw:這不是jnlp小程序,這是一個正常的Swing應用程序。
我用螞蟻的fx:deploy做了這個。這已經適用於64位系統。 我的問題是,我想將這個應用程序部署到32位系統,並沒有得到它的工作。針對x86 Windows系統的JavaFX exe捆綁

以下是我所做的:
我建立了一個乾淨的Windows 7(32位)實例並安裝了一個32位JVM。現在我運行我的ant腳本來構建捆綁的Java應用程序,並構建了一個App.exe。
但是,當我試圖通過雙擊啓動該exe文件,我得到了下面的消息框
Failed to create JVM
如果我點擊確定,我得到的另一個消息框
Failed to launch JVM
該應用程序被終止之後。
我沒有發現任何在網絡上搜索與32/64位系統綁定相關的內容。
所以我會很高興,如果有人能指出我在正確的方向。
非常感謝提前!
問候,-chris-

回答

4

看起來像固定即將到來的JavaFX版本(目前稱爲2.2.40)一個已知的錯誤:

在錯誤的情況下,用戶提到變通辦法:

如果我嘗試一下RT-22610中介紹的解決方法,即將運行時\ jre \ bin \ msvcr100.dll一側複製到我的應用程序啓動器二進制文件中,它將修復它。

我認爲錯誤是固定在JDK 8,所以另一種可能的解決辦法是下載一個JDK 8 early access release和使用打包工具從那裏來包裝一個Java 7的應用程序(雖然我從來沒有嘗試過,我不確定它是否會工作)。

+0

感謝您的回覆,但這仍然不適合我。如果啓動,由jdk8構建的exe不會執行任何操作。甚至沒有錯誤消息。 – Chris

+0

wourkaround在這裏工作,在一個32位Win XP的VirtualBox中,包含java 7 jvm(upadate 45,我認爲)。 –

+0

剩下的問題是:我們如何讓安裝程序自動將dll放在正確的位置? –

2

只是一個小改動@ jewelsea的修復:

複製msvcr100.dll到應用程序/文件夾,而不是把它旁邊的EXE也適用,並且它至少在一定程度上隱藏起來即可。

0

如果您正在生成MSI,則可以破解WIX使用的WXS文件,以自動將msvcr100.dll複製到應用程序文件夾中。使FX部署詳細將告訴你它在哪裏放置臨時WXS文件,您可以複製和修改並用於覆蓋WXS,就像例如程序圖標一樣。