解決Error occurred during initialization of VM Java虛擬機初始化失敗問題
遇到這個問題,其實很多人就害怕了,根本找不到問題的原因…
JVM那可是一個遙不可攀的東西,我寫Java的,JVM報錯了我咋整?
首先,先排查一下你的環(huán)境是否按照規(guī)矩配置好了
1.如果在Eclipse上運行出現(xiàn)了這個錯誤
估計是你的環(huán)境沒有配置好,eclipse主要是通過JRE的運行環(huán)境來執(zhí)行你的代碼
右擊項目名,找到properties屬性:
- 1、點擊Java Build Path,找到Libraries;
- 2、點擊Libraries進入;
- 3、雙擊JRE System Library如下圖所示。
然后Finish即可
2.IDEA中出現(xiàn)這個情況
File > Project Structure
一般情況下,SDKs都會隨著變化,如果沒變,你就手動點一下
Modules也一樣
然后OK即可
自己編譯的JDK進行debug時出現(xiàn)這樣的情況
需要知道,一般在java.lang包下的東西都與虛擬機掛鉤,在修改了java.lang包下的一些代碼后,需要重新編譯,并且需要確保jvm在運行時不會調(diào)用這些方法,或者你在執(zhí)行某個代碼的方法不會被其他的類相互之間調(diào)用,如果出現(xiàn)相互之間調(diào)用的情況…就極有可能導(dǎo)致Java虛擬機無法初始化
比如,在ArrayList的構(gòu)造方法中就不能隨便添加System.out.println()
打印語句
一般…寫寫注釋得了,別像我一樣亂改…
這些rt.jar包下的代碼,誰也不知道會不會出現(xiàn)什么特殊的情況
就比如我在java.util.ArrayList.java中的add方法添加了這么一行打印語句
在Test的main方法中創(chuàng)建了一個ArrayList對象
理論上,我沒有調(diào)用add方法,應(yīng)該不會執(zhí)行add方法吧…
實際上,我運行之后發(fā)現(xiàn)…
原來在調(diào)用list.add()之前,ArrayList其實已經(jīng)運行過N次了,只是咱不知道而已…
這是我之前修改了HashMap.java源碼中的一些代碼,結(jié)果就導(dǎo)致虛擬機起不來了,還好后面復(fù)原了
原諒我的無知…
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
網(wǎng)關(guān)Spring Cloud Gateway HTTP超時配置問題
這篇文章主要介紹了網(wǎng)關(guān)Spring Cloud Gateway HTTP超時配置問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-01-01SpringBoot和Swagger結(jié)合提高API開發(fā)效率
這篇文章主要介紹了SpringBoot和Swagger結(jié)合提高API開發(fā)效率的相關(guān)資料,需要的朋友可以參考下2017-09-09Mybatis的Mapper代理對象生成及調(diào)用過程示例詳解
這篇文章主要為大家介紹了Mybatis的Mapper代理對象生成及調(diào)用過程示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-09-09Springboot如何利用攔截器攔截請求信息收集到日志詳解
一些系統(tǒng)經(jīng)常需要關(guān)注用戶請求的具體信息,如用戶信息、請求參數(shù)、響應(yīng)結(jié)果等等,在SpringBoot應(yīng)用中可通過攔截器的方式統(tǒng)一處理,下面這篇文章主要給大家介紹了關(guān)于Springboot如何利用攔截器攔截請求信息收集到日志的相關(guān)資料,需要的朋友可以參考下2021-08-08