2015-12-15 65 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 –

相关问题