2013-04-10 36 views
1

我经历过类似问题的SO,但他们都没有给出正确的工作答案和我的设置(其他问题的答案适用于Windows机器,64位) 。Linux - Java - 虚拟机初始化期间发生错误

我有以下设置:

$ 
$ uname -a 
Linux localhost.localdomain 3.8.4-102.fc17.i686 #1 SMP Sun Mar 24 13:20:55 UTC 2013 i686 i686 i386 GNU/Linux 
$ 
$ java -version 
java version "1.7.0_17" 
Java(TM) SE Runtime Environment (build 1.7.0_17-b02) 
Java HotSpot(TM) Server VM (build 23.7-b01, mixed mode) 
$ 
$ javac -version 
javac 1.7.0_17 
$ 
$ 
$ free -m 
      total  used  free  shared buffers  cached 
Mem:   3520  3435   85   0  472  1531 
-/+ buffers/cache:  1431  2089 
Swap:   5567   0  5567 
$ 
$ 
$ echo $JAVA_HOME 
/usr/java/jdk1.7.0_17 
$ 
$ echo $PATH 
/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/usr/java/jdk1.7.0_17/bin 
$ 

尝试运行Java程序时,我收到以下错误!

Error occurred during initialization of VM 
Could not reserve enough space for object heap 
Error: Could not create the Java Virtual Machine. 
Error: A fatal exception has occurred. Program will exit. 

我是否需要升级到64-bit OS并安装64-bit JVM?或者我应该用更多的RAM升级我的硬件?

+3

什么是您用来启动程序的命令行。你是否指定了任何Xmx/Xms值?请提供完整的命令行。 – 2013-04-10 00:26:52

+0

很明显,它无法为JVM(堆)分配内存。什么是您用来启动程序的命令行或脚本? – 2013-04-10 00:33:46

回答

1

您需要检查是否有任何JAVA_OPTS定义:echo $JAVA_OPTS。你指定任何堆大小吗?

首先,您可以尝试为您的机器分配更多的RAM。

其次,您可以尝试运行带有指定MaxHeapSize和Xmx/Xms的java命令。 在Oracle的文档中查看Tuning the JVM heap sizes

1

看着内存,你只有85mb可用。在启动程序之前,您可能需要释放一些内存。此外,尝试使用以下命令行选项运行它: -Xmx512m-XX:MaxHeapSize=256m

相关问题