2013-05-28 36 views
5

我正在使用java“1.6.0_24”OpenJDK。有时当我运行我的程序时,我所得到的只是一条消息无法创建Java VM ---我如何获得更详细的错误消息?

Could not create the Java virtual machine.". 

某些其他时候,程序运行得很好。

是否有一些选项可以添加以获得更详细的输出,以确切的错误(甚至可能类似于核心转储?)。

这可能不是因为在这种情况下,相关的堆大小,它确实给一个明确而清晰的错误信息,如: -

Error occurred during initialization of VM 
Could not reserve enough space for object heap 
Could not create the Java virtual machine. 

这我能解决与设置-Xms和-Xmx适当。但是,JVM退出而不打印任何其他内容是非常无益的。

为了澄清,我的问题是关于哄更多详细的错误消息或某种状态文件/核心转储,然后我可以使用它进行调试。

+0

那么我有一台64 GB RAM的机器,我将-Xms设置为100M。虽然这台机器是集群的一部分,但可用内存通常大约为16GB(我通过在独立终端上运行顶部来验证)。同样的问题也是如此...(我有其他机器内存少得多,这就是为什么我设置-Xms为100M来解决_that_问题) – owagh

+0

我不确定什么可以比这更详细。内存分配是JVM初始化的第一件事情之一。显然,你的问题来自-Xmx而不是-Xms参数。 JVM在初始化时将堆分配给最大大小。您的最高限额太高。在32位JVM上,你只能使用不超过1.5GB – gigadot

回答

1

从一个小堆开始。将-Xms设置为远低于-Xmx。将最大堆大小-Xmx增加到1024(或2048取决于您的应用程序)。设置-Xms到512左右(我会说Xmx的一半)

+0

我已经试过了。这确实解决了一些问题,但不是全部。如果您阅读问题的后半部分,它确实表示我已经使用-Xms和-Xmx来解决与缺少内存相关的一些问题。虽然谢谢! – owagh

+0

@owagh你使用什么操作系统?我想这是Unix/Linux,如果是这样的味道? – avijendr

相关问题