2012-03-09 89 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應用程序。