mvn jetty:run出现OutOfMemoryError: PermGen space的处理

今天在使用maven运行jetty插件启动web程序的时候报错如下:

写道
java.lang.OutOfMemoryError: PermGen space
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631)
at java.lang.ClassLoader.defineClass(ClassLoader.java:615)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:283)
at java.net.URLClassLoader.access$000(URLClassLoader.java:58)
at java.net.URLClassLoader$1.run(URLClassLoader.java:197)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at org.mortbay.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:392)
at org.mortbay.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:363)

其实就是JVM的内存溢出了,不够用。

怎么办?处理的办法有好多种。

比如在启动 mvn 的命令里面添加jvm的参数。比如在 mvn.bat 或者 mvn.sh 里面添加jvm参数,扩大内存即可。

如过使用eclipse的maven插件启动jetty,可以调整jvm参数。

我使用命令行启动的,也不想修改原来的mvn启动命令,怎么办?

如下:设置一下环境变量即可,关闭命令行之后,该环境变量也就失效了。

set MAVEN_OPTS=-XX:MaxPermSize=128M
mvn jetty:run

猜你喜欢

转载自kanpiaoxue.iteye.com/blog/2330551