zoukankan      html  css  js  c++  java
  • java.lang.OutOfMemoryError: PermGen space及其解决方法

    摘要: tomcat部署多个项目后,启动tomcat正常,访问项目时却会出现该错误
    在网上查了查又试了好几次,才解决,将解决方法记录下来,以方便以后查看或让遇到同样问题的朋友有个参考

    PermGen space是啥就不说了,网上找找大堆,感觉也没必要记这些个概念

    问题的根源就是JVM的内存不够用了!!!
    解决方法:

    ********************************************************************************************************************
    如果是在IDE中开发项目,以MyEclipse为例, 
    Window->Preferences->MyEclipse->Servers->Tomcat x.x->JDK->Optional Java VM arguments:

    1
    2
    3
    4
    -Xms256m
    -Xmx256m
    -XX:PermSize=512M
    -XX:MaxPermSize=512m

    根据情况可以更改指定的内存大小。

    ****************************************************************************************************
    -Xms256m:表示JVM Heap(堆内存)最小尺寸256MB,初始分配
    -Xmx256m:表示JVM Heap(堆内存)最大允许的尺寸512MB,按需分配。
    说明:如果-Xmx不指定或者指定偏小,应用可能会导致java.lang.OutOfMemory错误,此错误来自JVM不是Throwable的,无法用try...catch捕捉。


    -XX:PermSize=512MB 最小尺寸,初始分配
    -XX:MaxPermSize=512MB 最大允许分配尺寸,按需分配,过小会导致:java.lang.OutOfMemoryError: PermGen space
    说明:PermSize和MaxPermSize指明虚拟机为java永久生成对象(Permanate generation)的大小,如,class对象、方法对象这些可反射(reflective)对象分配内存限制,这些内存不包括在Heap(堆内存)区之中。


    MaxPermSize缺省值和-server -client选项相关。
    -server选项下默认MaxPermSize为64m
    -client选项下默认MaxPermSize为32m
    ****************************************************************************************************

    如果不是在IDE中开发项目,则需要更改tomcat的配置文件:

    Windows环境下:%tomcat_home%/bin/catalina.bat文件:
    在最开始的位置加上:

    1
    set JAVA_OPTS=-server -Xms256m -Xmx256m -XX:PermSize=512M -XX:MaxPermSize=512m -XX:-UseGCOverheadLimit %JAVA_OPTS%

      这样就搞定了。

    注意:如果只更改catalina.bat文件,而是通过IDE启动tomcat,则IDE会忽略掉catalina.bat文件中设置的参数,所以最好就是在2处都进行更改。

    ******************************************************************************************************************** 
    Linux环境下:修改catalina.sh文件,在
    cygwin=false
    之前添加

    1
    JAVA_OPTS="-server -Xmx256m -Xms256m -XX:PermSize=512M -XX:MaxPermSize=512m"
  • 相关阅读:
    Swift入门篇-Hello World
    Swift入门篇-swift简介
    Minecraft 插件 world edit 的cs 命令
    搭建本地MAVEN NEXUS 服务
    MC java 远程调试 plugin 开发
    企业内部从零开始安装docker hadoop 提纲
    javascript 命令方式 测试例子
    ca des key crt scr
    JSF 抽象和实现例子 (函数和属性)
    form 上传 html 代码
  • 原文地址:https://www.cnblogs.com/weberhuang/p/9208085.html
Copyright © 2011-2022 走看看