作者:书友53034809 | 来源:互联网 | 2024-09-26 11:09
参考:https:blog.csdn.netqq_43842093articledetails121048515tomcat启动出现异常:java.lang.OutOfMe
参考:https://blog.csdn.net/qq_43842093/article/details/121048515
tomcat启动出现异常:java.lang.OutOfMemoryError: Java heap space
常见的有以下几种:
1、内存中加载的数据量过于庞大,如一次从数据库取出过多数据;
2、集合类中有对对象的引用,使用完后未清空,使得JVM不能回收;
3、代码中存在死循环或循环产生过多重复的对象实体;
4、使用的第三方软件中的BUG;
5、启动参数内存值设定的过小;
常见错误提示:
1、tomcat:java.lang.OutOfMemoryError: PermGen space
2、tomcat:java.lang.OutOfMemoryError: Java heap space
3、tomcat:java.lang.OutOfMemoryError: unable to create new native thread
4、weblogic:Root cause of ServletException java.lang.OutOfMemoryError
5、resin:java.lang.OutOfMemoryError
6、java:java.lang.OutOfMemoryError
方法一、用dos窗口启动tomcat
catalina.bat配置文件的第一行加入:set JAVA_OPTS=-server -XX:PermSize=256M -XX:MaxPermSize=512m
或者:set JAVA_OPTS= -Xms1024M -Xmx1024M -XX:PermSize=256M -XX:MaxNewSize=256M -XX:MaxPermSize=256M

方法二、环境变量中设置
变量名:JAVA_OPTS
变量值:-Xms512M -Xmx2048M -XX:PermSize=512M -XX:MaxPermSize=2048M -XX:ReservedCodeCacheSize=512m

前两种方法针对的是bin目录下有catalina.bat的情况(比如直接解压的Tomcat等)并且通过startup.bat/startup.sh启动才生效,
但是有些安装版的Tomcat下没有catalina.bat,这个时候可以采用如下方法,当然这个方法也是最通用的方法:
方法三、Tomcat 配置成Windows服务
比如服务名为 tomcat

通过D:\apache-tomcat-8.5.68\bin\tomcat8w.exe,配置内存大小
把tomcat8w.exe 改为 tomcat.exe, 双击 tomcat.exe

重新启动服务
方法四。直接修改service.bat文件,编辑打开service.bat,找到如下:

都改成 512或1024 后 ,要根据自己机器的实际内存进行修改,不能太大

然后把 Tomcat 配置成Windows服务