我写了一个小的java应用程序,并编写了一个小的linux脚本来在Linux服务器下执行这个Java程序。
但是当我试图运行这个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`
答案 0 :(得分:5)
对于小型 java应用程序,您真的需要2GB内存吗?值-Xmx2G告诉jmv为您的应用程序保留2GB内存。如果没有,则不起作用。
如果不需要2GB,请考虑删除该值或将其降低。
答案 1 :(得分:2)
对于基于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为我解决了这个问题:
yum install java-1.7.0-openjdk-devel
详细了解Installing OpenJDK on Red Hat Enterprise Linux
确认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应用程序。
答案 2 :(得分:1)
2G堆分配非常大,并且在某些32位JVM上,它比允许的大。
尝试将堆分配减少到更小的值(使用-Xmx
),或使用64位JVM(可以有更大的堆)。
答案 3 :(得分:0)
如果这不是资源问题,请尝试减少Xmx标志的值。看看here。