Java:找出OutOfMemoryError的原因

时间:2013-03-05 20:30:14

标签: java maven out-of-memory .bash-profile

我正在尝试在我的终端中构建一个Java应用程序(我正在使用Eclipse,但终端只是为了查看它是否有效),而且我一直对这个消息感到困惑:

Exception: java.lang.OutOfMemoryError thrown from the UncaughtExceptionHandler in thread     "main"

建议我将这行代码添加到我的.profile(我有.bash_profile,但不是.profile),所以我做了:

MAVEN_OPTS="-XX:MaxPermSize=512m"

但我仍然得到错误。这是我的.bash_profile文件的样子:

if [ -f ~/.bashrc ]; then
source ~/.bashrc
fi

MAVEN_OPTS="-XX:MaxPermSize=512m"

export JAVA_HOME=/usr/lib/jvm/java-7-oracle

export PATH=$PATH:/usr/local/mysql/bin

##
# Your previous /Users/tom.maxwell/.bash_profile file was backed up as   /Users/tom.maxwell/.bash_profile.macports-saved_2013-03-04_at_15:51:37
##

# MacPorts Installer addition on 2013-03-04_at_15:51:37: adding an appropriate PATH        variable for use with MacPorts.
export PATH=/opt/local/bin:/opt/local/sbin:$PATH
# Finished adapting your PATH environment variable for use with MacPorts.


##
@                                                                               
".bash_profile" 46L, 1730C

我该怎么办?我正在尝试运行的应用程序非常庞大,我不熟悉Java(我主要是JS / CSS人员)。

3 个答案:

答案 0 :(得分:2)

你正在改变持有类和东西的permgen大小。

而你想要改变最大内存,添加 MAVEN_OPTS="-Xms512M -Xmx2048M"

应该解决你的问题。

答案 1 :(得分:1)

我使用的是Ubuntu 14.04,我遇到了类似的问题。对我有用的是将此行添加到.bashrc

export MAVEN_OPTS="-Xmx756m -XX:MaxPermSize=2048m"

之后只需重新启动系统。

答案 2 :(得分:0)

在服务器参数中添加此参数作为参数

-Xmx1024m -XX:MaxPermSize = 512m -Xms512m

enter image description here