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