我使用ssh连接到基于linux的服务器。最近,我使用以下命令安装了JDK:
sudo yum install java-1.6.0-openjdk-devel
并且jdk安装成功,但每当我运行命令java
或javac
时,我都会收到以下错误:
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)
我该如何解决这个问题?
提前致谢
答案 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
作为最大堆大小。