我的项目使用的是tomcat插件(不是tomcat插件也可以使用此方法解决问题)启动项目的。在使用JRebel热部署启动项目的时候出现问题:java.lang.OutOfMemoryError: PermGen space
原因:在使用Jrebel 对项目进行热部署的时候,IDEA没有给对象堆区预留足够的空间,导致内存溢出,无法运行。jvm对永久区内存设置的太小,堆(heap)区小了,有些项目比较大,各种使用内存,当没有良好的规划对象的生命周期或者内存的时候,就很容易导致项目运行不起来或者运行起来之后给你宕掉。假设你有兴趣的话推荐你看一本:《深入理解java虚拟机》
解决:
就是增加jvm对应的内存,-server -XX:PermSize=512M -XX:MaxPermSize=1024m
如图所示:
还可以在配置文件中配置,如图所示:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>tomcat-maven-plugin</artifactId>
<version>1.1</version>
<configuration>
<path>/</path>
<systemProperties>
<JAVA_OPTS>-Xms512m -Xmx1024m -XX:MaxPermSize=256m</JAVA_OPTS>
</systemProperties>
</configuration>
</plugin>