5

我已经使用 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.

甚至,运行 commandjava -version也会带来该错误。当我尝试使用 给 java 更多空间java -Xmx512m -Xms256m -version时,我会收到以下错误:

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

我该如何解决这个问题?

提前致谢

4

5 回答 5

2

我从未见过这种异常,所以这是我最好的猜测:您是否尝试通过使用 -Xss JVM 参数(即 -Xms8m -Xmx16m -Xss4m)来限制堆栈大小?快速谷歌搜索建议export MALLOC_CHECK_=0可能会让你克服,但我不确定 JVM 是否能正常运行。

于 2012-10-25T08:55:20.143 回答
1

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

于 2012-10-25T00:50:26.773 回答
1

虚拟 Linux 服务器?运行时你会得到什么:

java -Xmx1m -版本

ulimit -a

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

于 2012-10-22T20:42:27.823 回答
0

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

于 2012-10-25T08:50:19.750 回答
-1

看起来您正在使用JDK 32-bit version。如果是这样,你不能分配一个堆大小超过1.2GB或其他东西。

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

于 2012-10-15T05:23:32.043 回答