解决idea出现的java.lang.OutOfMemoryError: Java heap space的问题

 更新时间:2023年06月30日 10:47:13   作者:互联网全栈开发实战  
我们在使用idea的时候经常会遇到一些问题,本文介绍了如何解决idea出现的java.lang.OutOfMemoryError: Java heap space的问题,文中有相关的图文示例,需要的朋友们下面随着小编来一起学习学习吧

1. 复现问题

今天使用idea开发时,突然报出如下错误:

Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
    at org.apdplat.word.dictionary.impl.DoubleArrayDictionaryTrie.allocate(DoubleArrayDictionaryTrie.java:188)
    at org.apdplat.word.dictionary.impl.DoubleArrayDictionaryTrie.init(DoubleArrayDictionaryTrie.java:207)
    at org.apdplat.word.dictionary.impl.DoubleArrayDictionaryTrie.addAll(DoubleArrayDictionaryTrie.java:307)
    at org.apdplat.word.dictionary.DictionaryFactory$DictionaryHolder$1.load(DictionaryFactory.java:116)
    at org.apdplat.word.util.AutoDetector.loadAndWatch(AutoDetector.java:102)
    at org.apdplat.word.dictionary.DictionaryFactory$DictionaryHolder.reload(DictionaryFactory.java:87)
    at org.apdplat.word.dictionary.DictionaryFactory.reload(DictionaryFactory.java:65)
    at org.apdplat.word.dictionary.DictionaryEnum.createDictionary(DictionaryEnum.java:65)
    at org.apdplat.word.dictionary.DictionaryEnum.<clinit>(DictionaryEnum.java:20)
    at com.zjs.Application.main(Application.java:42)

2. 分析问题

OutOfMemoryError翻译成中文即是堆内存溢出,但什么情况下会出现堆内存溢出呢?

当我们在IDEA上运行较大项或较多项目时,会导致编译量很大,从而引起内存不足的情况,即报出Error:java: java.lang.OutOfMemoryError: Java heap space的错误,也就是堆内存溢出。

因此,需要修改Idea运行项目的内存大小。

  1. 首先,查看我的idea的堆内存大小。

快捷键ctrl + alt + s出现设置(Settings)弹出框,如下图所示:

  • 找到Build,Execution,Deployment ,单击展开,如下图所示:

  • 单击Complier,即可查看到我的堆内存大小,如下图所示:

由图可以看出,我的堆内存大小256M,无法承载我的项目,即报出了java.lang.OutOfMemoryError: Java heap space

此外,如果你的ctrl + alt + s快捷键被占用了,可以使用如下方式打开设置(Settings)弹出框

  • 单击file,如下图所示:

  • 单击Settings,也可出现设置(Settings)弹出框

3. 解决问题

由上述分析可知,正因为在Complier设置的堆内存太小,导致无法承载大量的项目。

因而,我们可以将其设置为2048,如下图所示:

点击ok即可。

如果不点击ok,则配置不生效。

4. 补充解决java.lang.OutOfMemoryError: PermGen space问题

JDK1.6环境中,需要考虑到永久代的问题。

如果运行大项目提示java.lang.OutOfMemoryError: PermGen space 即永久代内存溢出问题 ,解决方式如下:

  • 打开Tomcat配置Edit Configurations

  • 点击Server,在VM options输入框输入如下配置
-Xms512m 
-Xmx2048m 
-XX:PermSize=512m 
-XX:MaxPermSize=2048m

点击ok即可。

如果不点击ok,则配置不生效。

  1. 参数说明:

    • -XmsJava Heap初始值,ServerJVM最好将-Xms-Xmx设为相同值,开发测试机JVM可以保留默认值

    • -XmxJava Heap最大值,默认值为物理内存的1/4,最佳设值应该视物理内存大小及计算机内其他内存开销而定

    • -XX:PermSize:设置持久代初始值

    • -XX:MaxPermSize:设置持久代最大值

总之是要根据本地配置适当修改,我是16G内存,就设置最大2G大气一点!

到此这篇关于解决idea出现的java.lang.OutOfMemoryError: Java heap space的问题的文章就介绍到这了,更多相关idea出现Java heap space问题内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 详解Spring Boot下Druid连接池的使用配置分析

    详解Spring Boot下Druid连接池的使用配置分析

    本篇文章主要介绍了详解Spring Boot下Druid连接池的使用配置分析,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-06-06
  • SpringBoot使用spring retry重试机制的操作详解

    SpringBoot使用spring retry重试机制的操作详解

    实际工作中由于网络波动等原因导致代码执行失败需要重新执行,保证最终能够完成业务功能,通常来说,会用try/catch,while循环或者定时任务重处理,但是这样的做法缺乏统一性,要多写很多代码,spring-retry组件可以通过注解优雅的实现重处理功能
    2024-12-12
  • Java Scala泛型(泛型方法,泛型类,泛型特质,上下界,协变、逆变、非变)

    Java Scala泛型(泛型方法,泛型类,泛型特质,上下界,协变、逆变、非变)

    泛型的意思是泛指某种具体的数据类型, 在Scala中, 泛型用[数据类型]表示. 在实际开发中, 泛型一般是结合数组或者集合来使用的,这篇文章主要介绍了Scala泛型(泛型方法,泛型类,泛型特质,上下界,协变、逆变、非变),需要的朋友可以参考下
    2023-04-04
  • 详解Mybatis框架SQL防注入指南

    详解Mybatis框架SQL防注入指南

    这篇文章主要介绍了详解Mybatis框架SQL防注入指南,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-07-07
  • Java Home变量的详细配置操作步骤

    Java Home变量的详细配置操作步骤

    用到Java项目的时候,有时候要用到Java_home,这个需要在系统配置中配置一下,如何操作呢?以下为详细的图文步骤,感兴趣的朋友跟随小编一起看看吧
    2023-11-11
  • 6种SpringBoot中自定义starter的方式介绍

    6种SpringBoot中自定义starter的方式介绍

    在SpringBoot生态中,starter是一种特殊的依赖,它能够自动装配相关组件,简化项目配置,本文将详细介绍6种不同的自定义starter开发方法,有需要的可以了解下
    2025-04-04
  • Spring Boot事务配置操作

    Spring Boot事务配置操作

    这篇文章主要介绍了Spring Boot事务配置操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-09-09
  • Spring @EventListener 异步中使用condition的问题及处理

    Spring @EventListener 异步中使用condition的问题及处理

    这篇文章主要介绍了Spring @EventListener 异步中使用condition的问题及处理方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-12-12
  • 灵活控制任务执行时间的Cron表达式范例

    灵活控制任务执行时间的Cron表达式范例

    这篇文章主要为大家介绍了灵活控制任务执行时间的Cron表达式范例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-10-10
  • SpringCloud Nacos + Ribbon 调用服务的实现方式(两种)

    SpringCloud Nacos + Ribbon 调用服务的实现方式(两种)

    这篇文章主要介绍了SpringCloud Nacos + Ribbon 调用服务的两种方法,分别是通过代码的方式调用服务和通过注解方式调用服务,每种方式给大家介绍的非常详细,需要的朋友可以参考下
    2022-03-03

最新评论