解決idea出現(xiàn)的java.lang.OutOfMemoryError:?Java?heap?space的問題
1. 復現(xiàn)問題
今天使用idea
開發(fā)時,突然報出如下錯誤:
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)存溢出
,但什么情況下會出現(xiàn)堆內(nèi)存溢出呢?
當我們在IDEA
上運行較大項或較多項目時,會導致編譯量很大,從而引起內(nèi)存不足的情況,即報出Error:java: java.lang.OutOfMemoryError: Java heap space
的錯誤,也就是堆內(nèi)存溢出。
因此,需要修改Idea
運行項目的內(nèi)存大小。
- 首先,查看我的
idea
的堆內(nèi)存大小。
快捷鍵ctrl + alt + s
出現(xiàn)設(shè)置(Settings
)彈出框,如下圖所示:
- 找到
Build,Execution,Deployment
,單擊展開,如下圖所示:
- 單擊
Complier
,即可查看到我的堆內(nèi)存大小,如下圖所示:
由圖可以看出,我的堆內(nèi)存大小256M,無法承載我的項目,即報出了java.lang.OutOfMemoryError: Java heap space
。
此外,如果你的ctrl + alt + s
快捷鍵被占用了,可以使用如下方式打開設(shè)置(Settings)彈出框
。
- 單擊
file
,如下圖所示:
- 單擊
Settings
,也可出現(xiàn)設(shè)置(Settings)彈出框
:
3. 解決問題
由上述分析可知,正因為在Complier
設(shè)置的堆內(nèi)存太小,導致無法承載大量的項目。
因而,我們可以將其設(shè)置為2048
,如下圖所示:
點擊ok
即可。
如果不點擊ok
,則配置不生效。
4. 補充解決java.lang.OutOfMemoryError: PermGen space問題
在JDK1.6
環(huán)境中,需要考慮到永久代的問題。
如果運行大項目提示java.lang.OutOfMemoryError: PermGen space
即永久代內(nèi)存溢出問題 ,解決方式如下:
- 打開
Tomcat
配置Edit Configurations
- 點擊
Server
,在VM options
輸入框輸入如下配置
-Xms512m -Xmx2048m -XX:PermSize=512m -XX:MaxPermSize=2048m
點擊ok
即可。
如果不點擊ok
,則配置不生效。
參數(shù)說明:
-Xms
:Java Heap
初始值,Server
端JVM
最好將-Xms
和-Xmx
設(shè)為相同值,開發(fā)測試機JVM
可以保留默認值-Xmx
:Java Heap
最大值,默認值為物理內(nèi)存的1/4
,最佳設(shè)值應(yīng)該視物理內(nèi)存大小及計算機內(nèi)其他內(nèi)存開銷而定-XX:PermSize
:設(shè)置持久代初始值-XX:MaxPermSize
:設(shè)置持久代最大值
總之是要根據(jù)本地配置
適當修改,我是16G
內(nèi)存,就設(shè)置最大2G
大氣一點!
到此這篇關(guān)于解決idea出現(xiàn)的java.lang.OutOfMemoryError: Java heap space的問題的文章就介紹到這了,更多相關(guān)idea出現(xiàn)Java heap space問題內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Java.lang.OutOfMemoryError: GC overhead limit exceeded錯誤的解決
- IDEA報錯java.lang.OutOfMemoryError:Java?heap?space的解決辦法
- IDEA報java:?java.lang.OutOfMemoryError:?Java?heap?space錯誤解決辦法
- java.lang.OutOfMemoryError: Metaspace異常解決的方法
- 完美解決java.lang.OutOfMemoryError處理錯誤的問題
- java.lang.OutOfMemoryError 錯誤整理及解決辦法
- java.lang.OutOfMemoryError: Java heap space錯誤的問題解決
相關(guān)文章
SpringBoot詳細講解如何創(chuàng)建及刷新Spring容器bean
前面看spring源碼時可以發(fā)現(xiàn)refresh()方法十分重要。在這個方法中會加載beanDefinition,同時創(chuàng)建bean對象。那么在springboot中有沒有使用這個refresh()方法呢2022-06-06ElasticSearch創(chuàng)建后索引修改數(shù)據(jù)類型方法步驟
Elasticsearch存儲數(shù)據(jù)之前需要先創(chuàng)建索引,類似于結(jié)構(gòu)型數(shù)據(jù)庫建庫建表,創(chuàng)建索引時定義了每個字段的索引方式和數(shù)據(jù)類型,這篇文章主要給大家介紹了關(guān)于ElasticSearch創(chuàng)建后索引修改數(shù)據(jù)類型的方法步驟,需要的朋友可以參考下2023-09-09Spring IOC控制反轉(zhuǎn)的實現(xiàn)解析
這篇文章主要介紹了Spring IOC控制反轉(zhuǎn)的實現(xiàn),IOC是Spring的核心思想之一,它通過將對象的創(chuàng)建、依賴注入和生命周期管理交給容器來實現(xiàn)解耦,使開發(fā)者能夠更專注于業(yè)務(wù)邏輯的實現(xiàn),需要的朋友可以參考下2025-02-02java利用udp實現(xiàn)發(fā)送數(shù)據(jù)
這篇文章主要為大家詳細介紹了java利用udp實現(xiàn)發(fā)送數(shù)據(jù),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2020-07-07