2012-03-09 696 views
0

我编写了一个小型java应用程序,并且还编写了一个小型Linux脚本来在Linux服务器下执行这个Java程序。Linux:无法启动:内存不足

但是,当过我试图运行此脚本的Linux,我收到此错误

无法启动:没有足够的内存

有谁请帮助我如何解决这个??

这是我的脚本

echo "Start time: " `date` 

SERVER_HOME=$HOME/ 

export CLASSPATH=.: 

export CLASSPATH=$CLASSPATH$SERVER_HOME/home/kiran/apiToplist/lib/*: 

echo $CLASSPATH 


java -cp $CLASSPATH -Xmx2G com.tata.samples.QuoteData 
echo "End time: " `date` 
+2

我喜欢你的“小”的概念...... – 2012-03-09 13:27:50

回答

5

你真的需要2GB的内存吗 java应用程序?值-Xmx2G告诉jmv为您的应用程序保留2GB的内存。如果这不可用,它将无法工作。

如果不需要2GB,请考虑删除值或降低值。

+1

+1:除非你知道你需要,否则我不会设置最大堆大小。 – 2012-03-09 13:21:14

1

一个2G堆分配是非常大的,和一些32位JVM上比它允许大。

尝试将堆分配减少到更小的值(使用-Xmx),或使用64位JVM(可能有更大的堆)。

+0

哪个JVM有这个限制? – 2012-03-09 13:27:23

0

如果这不是资源问题,请尝试并减少Xmx标志的值。看看here

1

对于基于Red Hat系统,请检查您使用的GNU libgjc:

java -version 

java version "1.5.0" 
gij (GNU libgcj) version 4.4.7 20120313 (Red Hat 4.4.7-3) 

安装的OpenJDK固定我的问题:了解更多关于Installing OpenJDK on Red Hat Enterprise Linux

yum install java-1.7.0-openjdk-devel 

确认java已更新:

java -version 

java version "1.7.0_45" 
OpenJDK Runtime Environment (rhel-2.4.3.3.el6-x86_64 u45-b15) 
OpenJDK 64-Bit Server VM (build 24.45-b08, mixed mode) 

开始您的Java应用程序。