Tomcat启动 java.lang.OutOfMemoryError

在catalina.bat中添加

1.Java heap space
set JAVA_OPTS=-server -Xms256m -Xmx512m -XX:MaxNewSize=256m

2.PermGen space  内存的永久保存区域,这块内存主要是被JVM存放Class和Meta信息的,Class在被Loader时就会被放到PermGen space中,  
Exception in thread "ContainerBackgroundProcessor[StandardEngine[Catalina]]"  

WEB APP下都用了大量的第三方jar, 其大小超过了jvm默认的大小(4M)那么就会产生此错误信息了
set JAVA_OPTS=-server -XX:PermSize=64M -XX:MaxPermSize=128m

 

综合配置如下:
set JAVA_OPTS=-server -Xms512m -Xmx1024m -XX:MaxNewSize=512m -XX:PermSize=64M -XX:MaxPermSize=128m 
### 解决Tomcat 9中Java堆内存不足错误 当遇到`java.lang.OutOfMemoryError: Java heap space` 错误时,表明当前使用的JVM堆大小设置不合适,通常是因为设定的数据过小所致[^2]。为了有效解决问题并提高性能,可以采取以下措施来增加JVM堆大小。 #### 修改环境变量配置 一种常见的做法是在启动脚本中调整JVM参数,具体操作如下: 对于Windows平台,在`bin/catalina.bat` 文件内加入或修改下列行: ```batch set JAVA_OPTS=-Xms512m -Xmx2048m -XX:MaxPermSize=512m ``` 而对于Linux/Unix系统,则编辑 `bin/setenv.sh` (如果不存在则创建),添加相同的内容: ```bash export JAVA_OPTS="-Xms512m -Xmx2048m -XX:MaxPermSize=512m" ``` 上述命令中的 `-Xms` 和 `-Xmx` 参数分别用于指定初始和最大堆空间大小;而 `-XX:MaxPermSize` 则定义永久代的最大容量(针对较旧版本的HotSpot JVM)。这里建议根据实际情况合理分配资源[^1]。 #### 使用jmap工具监控堆使用状况 通过运行命令 `jmap -heap <PID>` 可以获取到目标进程中关于Heap的具体信息,这有助于了解现有配置是否满足需求,并据此做出相应调整。 #### 应用重启与服务重置 完成以上更改之后,记得先停止正在运行的服务实例,再按照官方文档指示重新部署应用程序。特别提醒的是,某些情况下可能还需要完全移除原有服务注册表项后再重建新的一项,比如利用 Windows 的 Service Control Manager (SCM) 工具执行类似下面的操作序列: ```batch sc delete tomcat9 # 删除tomcat9服务 service.bat install # 安装新的服务副本 ``` 确保一切正常后继续后续工作流程[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值