扫码关注官方订阅号
不是web项目,纯java项目Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
学习是最好的投资!
简单的解决方式就是调整堆的大小在Eclilpse中修改启动参数,在VM arguments 加入了-Xms384m -Xmx384m或者在tomcat的catalina.bat中加上-Xms384m -Xmx384m
不过,建议最好再检查检查代码
@letcheng 同意它的观点,你只是一个纯java项目,又不是web项目,你能创建多少对象,搞到堆发生OOM。所以,很大程度上还是你代码的原因。JDK下,有自带的JConsole.exe工具,你可以观察下你当前有多少对象,堆内存有多少,是在什么时候多到发生OOM的呢。
这种问题,建议用findbug或者sonar等工具跑一下程序看看哪里有内存泄露导致内存溢出的风险
java.lang.OutOfMemoryError: Java heap space是堆内存的年轻年老态内存空间都用完时候就会抛,所以一般来说此问题主要是创建的内存无法回收,例如最常见的IO类用完后不做xx.close()
光是在TOMCAT配置大内存是不够了,需要找到源头,如果有内存泄露问题存在,用再大的内存也是没用
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
简单的解决方式就是调整堆的大小
在Eclilpse中修改启动参数,在VM arguments 加入了-Xms384m -Xmx384m
或者
在tomcat的catalina.bat中加上-Xms384m -Xmx384m
不过,建议最好再检查检查代码
@letcheng 同意它的观点,你只是一个纯java项目,又不是web项目,你能创建多少对象,搞到堆发生OOM。所以,很大程度上还是你代码的原因。
JDK下,有自带的JConsole.exe工具,你可以观察下你当前有多少对象,堆内存有多少,是在什么时候多到发生OOM的呢。
这种问题,建议用findbug或者sonar等工具跑一下程序看看哪里有内存泄露导致内存溢出的风险
java.lang.OutOfMemoryError: Java heap space是堆内存的年轻年老态内存空间都用完时候就会抛,所以一般来说此问题主要是创建的内存无法回收,例如最常见的IO类用完后不做xx.close()
光是在TOMCAT配置大内存是不够了,需要找到源头,如果有内存泄露问题存在,用再大的内存也是没用