解決idea出現(xiàn)的java.lang.OutOfMemoryError:?Java?heap?space的問題
1. 復(fù)現(xiàn)問題
今天使用idea開發(fā)時(shí),突然報(bào)出如下錯(cuò)誤:

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翻譯成中文即是堆內(nèi)存溢出,但什么情況下會(huì)出現(xiàn)堆內(nèi)存溢出呢?
當(dāng)我們?cè)?code>IDEA上運(yùn)行較大項(xiàng)或較多項(xiàng)目時(shí),會(huì)導(dǎo)致編譯量很大,從而引起內(nèi)存不足的情況,即報(bào)出Error:java: java.lang.OutOfMemoryError: Java heap space的錯(cuò)誤,也就是堆內(nèi)存溢出。
因此,需要修改Idea運(yùn)行項(xiàng)目的內(nèi)存大小。
- 首先,查看我的
idea的堆內(nèi)存大小。
快捷鍵ctrl + alt + s出現(xiàn)設(shè)置(Settings)彈出框,如下圖所示:

- 找到
Build,Execution,Deployment,單擊展開,如下圖所示:

- 單擊
Complier,即可查看到我的堆內(nèi)存大小,如下圖所示:

由圖可以看出,我的堆內(nèi)存大小256M,無法承載我的項(xiàng)目,即報(bào)出了java.lang.OutOfMemoryError: Java heap space。
此外,如果你的ctrl + alt + s快捷鍵被占用了,可以使用如下方式打開設(shè)置(Settings)彈出框。
- 單擊
file,如下圖所示:

- 單擊
Settings,也可出現(xiàn)設(shè)置(Settings)彈出框:

3. 解決問題
由上述分析可知,正因?yàn)樵?code>Complier設(shè)置的堆內(nèi)存太小,導(dǎo)致無法承載大量的項(xiàng)目。
因而,我們可以將其設(shè)置為2048,如下圖所示:

點(diǎn)擊ok即可。
如果不點(diǎn)擊ok,則配置不生效。
4. 補(bǔ)充解決java.lang.OutOfMemoryError: PermGen space問題
在JDK1.6環(huán)境中,需要考慮到永久代的問題。
如果運(yùn)行大項(xiàng)目提示java.lang.OutOfMemoryError: PermGen space 即永久代內(nèi)存溢出問題 ,解決方式如下:
- 打開
Tomcat配置Edit Configurations

- 點(diǎn)擊
Server,在VM options輸入框輸入如下配置
-Xms512m -Xmx2048m -XX:PermSize=512m -XX:MaxPermSize=2048m

點(diǎn)擊ok即可。
如果不點(diǎn)擊ok,則配置不生效。
參數(shù)說明:
-Xms:Java Heap初始值,Server端JVM最好將-Xms和-Xmx設(shè)為相同值,開發(fā)測(cè)試機(jī)JVM可以保留默認(rèn)值-Xmx:Java Heap最大值,默認(rèn)值為物理內(nèi)存的1/4,最佳設(shè)值應(yīng)該視物理內(nèi)存大小及計(jì)算機(jī)內(nèi)其他內(nèi)存開銷而定-XX:PermSize:設(shè)置持久代初始值-XX:MaxPermSize:設(shè)置持久代最大值
總之是要根據(jù)本地配置適當(dāng)修改,我是16G內(nèi)存,就設(shè)置最大2G大氣一點(diǎn)!
到此這篇關(guān)于解決idea出現(xiàn)的java.lang.OutOfMemoryError: Java heap space的問題的文章就介紹到這了,更多相關(guān)idea出現(xiàn)Java heap space問題內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Java.lang.OutOfMemoryError: GC overhead limit exceeded錯(cuò)誤的解決
- IDEA報(bào)錯(cuò)java.lang.OutOfMemoryError:Java?heap?space的解決辦法
- IDEA報(bào)java:?java.lang.OutOfMemoryError:?Java?heap?space錯(cuò)誤解決辦法
- java.lang.OutOfMemoryError: Metaspace異常解決的方法
- 完美解決java.lang.OutOfMemoryError處理錯(cuò)誤的問題
- java.lang.OutOfMemoryError 錯(cuò)誤整理及解決辦法
- java.lang.OutOfMemoryError: Java heap space錯(cuò)誤的問題解決
相關(guān)文章
SpringBoot詳細(xì)講解如何創(chuàng)建及刷新Spring容器bean
前面看spring源碼時(shí)可以發(fā)現(xiàn)refresh()方法十分重要。在這個(gè)方法中會(huì)加載beanDefinition,同時(shí)創(chuàng)建bean對(duì)象。那么在springboot中有沒有使用這個(gè)refresh()方法呢2022-06-06
ElasticSearch創(chuàng)建后索引修改數(shù)據(jù)類型方法步驟
Elasticsearch存儲(chǔ)數(shù)據(jù)之前需要先創(chuàng)建索引,類似于結(jié)構(gòu)型數(shù)據(jù)庫建庫建表,創(chuàng)建索引時(shí)定義了每個(gè)字段的索引方式和數(shù)據(jù)類型,這篇文章主要給大家介紹了關(guān)于ElasticSearch創(chuàng)建后索引修改數(shù)據(jù)類型的方法步驟,需要的朋友可以參考下2023-09-09
hibernate測(cè)試時(shí)遇到的幾個(gè)異常及解決方法匯總
今天小編就為大家分享一篇關(guān)于hibernate測(cè)試時(shí)遇到的幾個(gè)異常及解決方法匯總,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧2019-03-03
myBatis實(shí)現(xiàn)三級(jí)嵌套復(fù)雜對(duì)象的賦值問題
這篇文章主要介紹了myBatis實(shí)現(xiàn)三級(jí)嵌套復(fù)雜對(duì)象的賦值問題,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-11-11
Spring IOC控制反轉(zhuǎn)的實(shí)現(xiàn)解析
這篇文章主要介紹了Spring IOC控制反轉(zhuǎn)的實(shí)現(xiàn),IOC是Spring的核心思想之一,它通過將對(duì)象的創(chuàng)建、依賴注入和生命周期管理交給容器來實(shí)現(xiàn)解耦,使開發(fā)者能夠更專注于業(yè)務(wù)邏輯的實(shí)現(xiàn),需要的朋友可以參考下2025-02-02
java導(dǎo)出到excel常用的幾種方式總結(jié)
導(dǎo)出excel是咱Java開發(fā)的必備技能啦,之前項(xiàng)目有這個(gè)功能,現(xiàn)在將其獨(dú)立出來,分享一下,下面這篇文章主要給大家介紹了關(guān)于java導(dǎo)出到excel常用的幾種方式,需要的朋友可以參考下2023-05-05
Java實(shí)現(xiàn)的Base64加密算法示例
這篇文章主要介紹了Java實(shí)現(xiàn)的Base64加密算法,結(jié)合實(shí)例形式分析了Java實(shí)現(xiàn)的base64編碼轉(zhuǎn)換相關(guān)使用方法及操作注意事項(xiàng),需要的朋友可以參考下2018-04-04
java利用udp實(shí)現(xiàn)發(fā)送數(shù)據(jù)
這篇文章主要為大家詳細(xì)介紹了java利用udp實(shí)現(xiàn)發(fā)送數(shù)據(jù),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-07-07

