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