JVM 32位在64位机器上崩溃

时间:2012-01-19 05:47:04

标签: java jvm

我的Java应用程序JVM(1.6.0_26,32位)在关闭此Java应用程序时遇到了零星的崩溃。 这种间歇性的JVM崩溃问题似乎只会影响64位Windows操作系统。 在32位Windows操作系统和Mac OS X上不会发生此问题。 任何人都可以告诉我这个的原因。 实际上这个java应用程序使用100-150个库,并且在执行时,一旦应用程序关闭崩溃,它就不会崩溃。 在64位机器上使用32位JVM是否合适?

非常感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

简短回答是否定的。在64位计算机上使用32位JVM是不合适的。更长的答案是,如果您没有选项,Windows 64位操作系统可以在兼容模式下运行32位程序。

实际上没有必要这样做,因为64位JVM在Windows操作系统上运行良好。这也意味着您的进程可以利用比32位进程更多的内存和速度。

http://msdn.microsoft.com/en-us/library/aa384249(v=vs.85).aspx

答案 1 :(得分:0)

有一个类似的问题,我在64位Win7上安装了我的JVM 32位,一切运行良好,直到加载第三方OLE桥。 JVM发布了崩溃报告,称Java二进制文件停止工作,崩溃报告代码中的消息值为HEAP_MEMORY_CORRUPTION。这很奇怪,因为当我附加一个分析器时,堆远远低于最大限制。我怀疑我的Bridge提供程序在WOW64下模拟时不允许执行某些内核模式(如果可能的话)。

我解决了我的问题。当填充了MS Office时,它无法填充2007而不是我安装2003时,它工作。检查您的应用是否立即崩溃或是否正在进行某些本机通话,这样您就可以查明问题。