如何解决'初始化VM'java期间出错?

时间:2012-10-15 05:19:04

标签: java jvm

我使用ssh连接到基于linux的服务器。最近,我使用以下命令安装了JDK:

sudo yum install java-1.6.0-openjdk-devel

并且jdk安装成功,但每当我运行命令javajavac时,我都会收到以下错误:

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

即使运行命令java -version,也会带来错误。当我尝试使用java -Xmx512m -Xms256m -version为java提供更多空间时,我会收到以下错误:

*** glibc detected *** java: double free or corruption (!prev): 0x00007fc84400e270 ***
*** glibc detected *** java: double free or corruption (fasttop): 0x00007fc8440089f0 ***
#
Aborted (core dumped)

我该如何解决这个问题?

提前致谢

5 个答案:

答案 0 :(得分:2)

我从未见过这种异常,所以这是我最好的猜测:你是否试图限制stack size by using -Xss JVM parameter(即-Xms8m -Xmx16m -Xss4m)?同样快速的谷歌搜索表明export MALLOC_CHECK_=0可能让你克服,但我不确定JVM是否能正常运行。

答案 1 :(得分:1)

虚拟Linux服务器? 跑步时得到什么:

java -Xmx1m -version

ulimit -a

看起来像内存分配问题。如果可能,您可以尝试增加交换空间。

答案 2 :(得分:1)

对我而言,似乎没有足够的内存来运行虚拟机(可能是物理内存,虚拟内存或ulimit) - 你应该尝试减少分配给VM的内存(我认为默认为64Mb)而不是增加它

答案 3 :(得分:0)

降低你的-Xms(不是xmx)。例如使用-Xms40m。如果它在其他答案中说明,你的内存可能太低,无法在启动时为vm回收256m。

答案 4 :(得分:-1)

看起来您正在使用 JDK 32位版本。如果是这样,您不能指定堆大小超过1.2GB或其他内容。

使用64位JDK或尝试使用1.2G作为最大堆大小。