最近在做项目开发时,发现项目启动后老是报java.lang.OutOfMemoryError: PermGen space,OutOfMemoryError是内存溢出,PermGen space说明是永久代(即方法区)发生异常。
产生的原因是JVM虚拟机对永久代区域的内容做垃圾回收造成应用动态加载类文件过多引起的内存溢出错误。
所以,需要设置永久代区域的最大值。在weblogic域的bin目录中(我的是C:\Oracle\Middleware\user_projects\domains\pnc_myc\bin)的setDomainEnv.cmd(linux对应修改setDomainEnv.sh),查找MaxPermSize:
set MEM_MAX_PERM_SIZE_64BIT=-XX:MaxPermSize=256m
set MEM_MAX_PERM_SIZE_32BIT=-XX:MaxPermSize=128m 将两个都修改成512M(可以根据自己电脑配置适当增大),保存,然后重新启动weblogic。