2015-12-15 75 views
0

我有一個很奇怪的問題。Java Swing應用程序未在64位運行

我有一個我們最近升級的Swing應用程序,它根本不在Java 1.7/1.8 64位環境中運行。

更具體地說,該應用程序在1.7.0_52 +的32位Java安裝中運行良好,但如果將其放置在64位環境中,則根本無法打開。

從與-verbose控制檯運行它,它停止裝貨前的最後一條消息是:

[Loaded sun.awt.AWTAutoShutDown$1 from c:\Program Files\Java\jre1.8.0_65\lib\rt.jar] 

有任何日誌中沒有消息,上面顯示的錯誤發生,並沒有異常或其他消息拋出。應用程序的Java環境保留在內存中,CPU使用率約爲40%。

是什麼讓這個奇怪的是,如果我通過eclipse啓動相同的應用程序運行在同一臺PC上。在我的PC上只有一個Java安裝,應用程序和Eclipse都使用相同的JDK。

我無法想出任何可能導致問題的事情,而我無所適從。有人有什麼主意嗎?

+0

我建議您在調試器控制下啓動應用程序,以便您可以附加遠程調試器以查看它實際掛起的位置。 (請參閱http://stackoverflow.com/a/975342/1611055)。另一種方法是轉儲堆棧跟蹤(http://stackoverflow.com/a/2124708/1611055),這可能會讓您對應用程序掛起的位置有所瞭解 –

+0

謝謝,我將立即嘗試此操作 – Spyros

回答

-1

使用32位的引用可以解決的地址空間32 + 3位,它可以假定一個對象地址的低3位的64位JVM是0

大多數32位JVM被限制爲大約1.2-1.5 GB。

+0

除此之外,它不會回答這個問題 - 你有沒有官方提及這個理論? –

+0

是http://stackoverflow.com/questions/5178598/32-bit-or-64-bit-application-on-64-bit-os –

+0

http://stackoverflow.com/questions/4407699/64-bit- java-for-small-stand-alone-applications –

相關問題