解決idea出現(xiàn)的java.lang.OutOfMemoryError:?Java?heap?space的問(wèn)題
1. 復(fù)現(xiàn)問(wèn)題
今天使用idea
開(kāi)發(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. 分析問(wèn)題
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
,單擊展開(kāi),如下圖所示:
- 單擊
Complier
,即可查看到我的堆內(nèi)存大小,如下圖所示:
由圖可以看出,我的堆內(nèi)存大小256M,無(wú)法承載我的項(xiàng)目,即報(bào)出了java.lang.OutOfMemoryError: Java heap space
。
此外,如果你的ctrl + alt + s
快捷鍵被占用了,可以使用如下方式打開(kāi)設(shè)置(Settings)彈出框
。
- 單擊
file
,如下圖所示:
- 單擊
Settings
,也可出現(xiàn)設(shè)置(Settings)彈出框
:
3. 解決問(wèn)題
由上述分析可知,正因?yàn)樵?code>Complier設(shè)置的堆內(nèi)存太小,導(dǎo)致無(wú)法承載大量的項(xiàng)目。
因而,我們可以將其設(shè)置為2048
,如下圖所示:
點(diǎn)擊ok
即可。
如果不點(diǎn)擊ok
,則配置不生效。
4. 補(bǔ)充解決java.lang.OutOfMemoryError: PermGen space問(wèn)題
在JDK1.6
環(huán)境中,需要考慮到永久代的問(wèn)題。
如果運(yùn)行大項(xiàng)目提示java.lang.OutOfMemoryError: PermGen space
即永久代內(nèi)存溢出問(wèn)題 ,解決方式如下:
- 打開(kāi)
Tomcat
配置Edit Configurations
- 點(diǎn)擊
Server
,在VM options
輸入框輸入如下配置
-Xms512m -Xmx2048m -XX:PermSize=512m -XX:MaxPermSize=2048m
點(diǎn)擊ok
即可。
如果不點(diǎn)擊ok
,則配置不生效。
參數(shù)說(shuō)明:
-Xms
:Java Heap
初始值,Server
端JVM
最好將-Xms
和-Xmx
設(shè)為相同值,開(kāi)發(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)存開(kā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的問(wèn)題的文章就介紹到這了,更多相關(guān)idea出現(xiàn)Java heap space問(wèn)題內(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ò)誤的問(wèn)題
- java.lang.OutOfMemoryError 錯(cuò)誤整理及解決辦法
- java.lang.OutOfMemoryError: Java heap space錯(cuò)誤的問(wèn)題解決
相關(guān)文章
SpringBoot詳細(xì)講解如何創(chuàng)建及刷新Spring容器bean
前面看spring源碼時(shí)可以發(fā)現(xiàn)refresh()方法十分重要。在這個(gè)方法中會(huì)加載beanDefinition,同時(shí)創(chuàng)建bean對(duì)象。那么在springboot中有沒(méi)有使用這個(gè)refresh()方法呢2022-06-06ElasticSearch創(chuàng)建后索引修改數(shù)據(jù)類型方法步驟
Elasticsearch存儲(chǔ)數(shù)據(jù)之前需要先創(chuàng)建索引,類似于結(jié)構(gòu)型數(shù)據(jù)庫(kù)建庫(kù)建表,創(chuàng)建索引時(shí)定義了每個(gè)字段的索引方式和數(shù)據(jù)類型,這篇文章主要給大家介紹了關(guān)于ElasticSearch創(chuàng)建后索引修改數(shù)據(jù)類型的方法步驟,需要的朋友可以參考下2023-09-09hibernate測(cè)試時(shí)遇到的幾個(gè)異常及解決方法匯總
今天小編就為大家分享一篇關(guān)于hibernate測(cè)試時(shí)遇到的幾個(gè)異常及解決方法匯總,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2019-03-03myBatis實(shí)現(xiàn)三級(jí)嵌套復(fù)雜對(duì)象的賦值問(wèn)題
這篇文章主要介紹了myBatis實(shí)現(xiàn)三級(jí)嵌套復(fù)雜對(duì)象的賦值問(wèn)題,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-11-11Spring IOC控制反轉(zhuǎn)的實(shí)現(xiàn)解析
這篇文章主要介紹了Spring IOC控制反轉(zhuǎn)的實(shí)現(xiàn),IOC是Spring的核心思想之一,它通過(guò)將對(duì)象的創(chuàng)建、依賴注入和生命周期管理交給容器來(lái)實(shí)現(xiàn)解耦,使開(kāi)發(fā)者能夠更專注于業(yè)務(wù)邏輯的實(shí)現(xiàn),需要的朋友可以參考下2025-02-02java導(dǎo)出到excel常用的幾種方式總結(jié)
導(dǎo)出excel是咱Java開(kāi)發(fā)的必備技能啦,之前項(xiàng)目有這個(gè)功能,現(xiàn)在將其獨(dú)立出來(lái),分享一下,下面這篇文章主要給大家介紹了關(guān)于java導(dǎo)出到excel常用的幾種方式,需要的朋友可以參考下2023-05-05Java實(shí)現(xiàn)的Base64加密算法示例
這篇文章主要介紹了Java實(shí)現(xiàn)的Base64加密算法,結(jié)合實(shí)例形式分析了Java實(shí)現(xiàn)的base64編碼轉(zhuǎn)換相關(guān)使用方法及操作注意事項(xiàng),需要的朋友可以參考下2018-04-04java利用udp實(shí)現(xiàn)發(fā)送數(shù)據(jù)
這篇文章主要為大家詳細(xì)介紹了java利用udp實(shí)現(xiàn)發(fā)送數(shù)據(jù),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-07-07