java 内存溢出 扩大jvm内存

本文介绍了解决Java应用程序中出现的内存溢出问题的方法。主要包括两种途径:一是优化代码,减少对象引用,确保垃圾回收机制正常运行;二是通过调整JVM参数来增加可用的堆内存。文中详细解释了在Windows环境下如何修改Tomcat服务器的JVM设置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

随手小记:
今天下午遇到一个问题:java.lang.OutOfMemoryError: Java heap space 内存溢出问题,遇到这个问题一般有两个解决方式
第一种:修改代码程序,代码中存在大量未被释放的对象引用,或者gc()机制没有来得及回收内存
第二种:扩大jvm内存(主要讲windows上修改方式):
1、使用statup.bat启动tomcat的:修改bin目录下的catalina.bat文件
在文件中查找 :gotHome字符串,在其后一行添加:set JAVA_OPTS=-Xms512M -Xmx1024M
-Xms 的含义是jvm初始堆大小  -Xmx的含义是堆最大大小
2、来到了坑我了3小时候的大坑了,在项目的实际实施过程中,一般tomcat都被注册到windows的服务中(如果做已经在前面博客中写过),使用windows服务启动tomcat,这种如何修改jvm大小呢,打开注册表  win+r 然后输入 regedit 找到

HKEY_LOCAL_MACHINE\SOFTWARE\Apache Software Foundation\Procrun 2.0\tomcat1\Parameters\java
修改两个参数 :JvmMs 、JvmMx
JvmMs:初始内存大小
JvmMx:最大可使用内存大小
调节内存大小的可以查看任务管理器中的性能 ,根据自己的实际情况进行调整

在实际的开发中,我使用的服务器是windows server2012 R2,64位,8G内存,但是装的jdk、tomcat都是
32位的,这个就有一个小坑,在32位中,内存是不允许随便放大的,8G内存我将JvmMx的值改为1.5G,tomcat就启动失败,改为1G则没有问题,后来我手动将jdk、tomcat都换成了64位的,这样一来,jvm就是随便扩大内存了(仅限在物理内存之内)



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值