解決Error occurred during initialization of VM Java虛擬機(jī)初始化失敗問題
遇到這個問題,其實(shí)很多人就害怕了,根本找不到問題的原因…
JVM那可是一個遙不可攀的東西,我寫Java的,JVM報錯了我咋整?
首先,先排查一下你的環(huán)境是否按照規(guī)矩配置好了
1.如果在Eclipse上運(yùn)行出現(xiàn)了這個錯誤
估計是你的環(huán)境沒有配置好,eclipse主要是通過JRE的運(yùn)行環(huán)境來執(zhí)行你的代碼
右擊項(xiàng)目名,找到properties屬性:
- 1、點(diǎn)擊Java Build Path,找到Libraries;
- 2、點(diǎn)擊Libraries進(jìn)入;
- 3、雙擊JRE System Library如下圖所示。






然后Finish即可
2.IDEA中出現(xiàn)這個情況
File > Project Structure


一般情況下,SDKs都會隨著變化,如果沒變,你就手動點(diǎn)一下

Modules也一樣

然后OK即可
自己編譯的JDK進(jìn)行debug時出現(xiàn)這樣的情況
需要知道,一般在java.lang包下的東西都與虛擬機(jī)掛鉤,在修改了java.lang包下的一些代碼后,需要重新編譯,并且需要確保jvm在運(yùn)行時不會調(diào)用這些方法,或者你在執(zhí)行某個代碼的方法不會被其他的類相互之間調(diào)用,如果出現(xiàn)相互之間調(diào)用的情況…就極有可能導(dǎo)致Java虛擬機(jī)無法初始化
比如,在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方法吧…
實(shí)際上,我運(yùn)行之后發(fā)現(xiàn)…

原來在調(diào)用list.add()之前,ArrayList其實(shí)已經(jīng)運(yùn)行過N次了,只是咱不知道而已…
這是我之前修改了HashMap.java源碼中的一些代碼,結(jié)果就導(dǎo)致虛擬機(jī)起不來了,還好后面復(fù)原了

原諒我的無知…
總結(jié)
以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Java利用InputStream類實(shí)現(xiàn)文件讀取與處理
在Java開發(fā)中,輸入流(InputStream)是一個非常重要的概念,它涉及到文件讀寫、網(wǎng)絡(luò)傳輸?shù)榷鄠€方面,InputStream類是Java中輸入流的抽象基類,定義了讀取輸入流數(shù)據(jù)的方法,本文將以InputStream類為切入點(diǎn),介紹Java中的輸入流概念及其應(yīng)用,需要的朋友可以參考下2023-11-11
Java調(diào)用Oss JDk實(shí)現(xiàn)刪除指定目錄下的所有文件
這篇文章主要為大家詳細(xì)介紹了Java如何調(diào)用Oss JDk實(shí)現(xiàn)刪除指定目錄下的所有文件功能,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下2025-03-03
Java中LinkedHashSet的實(shí)現(xiàn)原理詳解
這篇文章主要介紹了Java中LinkedHasSet的實(shí)現(xiàn)原理詳解,LinkedHashSet?是具有可預(yù)知迭代順序的?Set?接口的哈希表和鏈接列表實(shí)現(xiàn),此實(shí)現(xiàn)與HashSet?的不同之處在于,后者維護(hù)著一個運(yùn)行于所有條目的雙重鏈接列表,需要的朋友可以參考下2023-09-09
淺談java.util.concurrent包中的線程池和消息隊(duì)列
這篇文章主要介紹了淺談java.util.concurrent包中的線程池和消息隊(duì)列,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-08-08
SpringBoot通過接口下載resources下的文件方式
SpringBoot通過接口下載resources目錄文件,解決jar包部署后資源路徑不可直接訪問的問題,利用Resource類加載文件,通過HttpServletResponse返回流,實(shí)現(xiàn)用戶下載功能2025-09-09
SpringBoot整合Java DL4J實(shí)現(xiàn)情感分析系統(tǒng)
在當(dāng)今數(shù)字化時代,企業(yè)越來越重視用戶的反饋,以不斷改進(jìn)產(chǎn)品和服務(wù),自然語言處理技術(shù)為分析用戶評價提供了強(qiáng)大的工具,本文將介紹如何使用 Spring Boot 整合 Java Deeplearning4j 構(gòu)建一個情感分析系統(tǒng),需要的朋友可以參考下2024-10-10
Java?詳解Collection集合之ArrayList和HashSet
本章具體介紹了ArrayList和HashSet兩種集合的基本使用方法和區(qū)別,圖解穿插代碼實(shí)現(xiàn)。?JAVA成仙路從基礎(chǔ)開始講,后續(xù)會講到JAVA高級,中間會穿插面試題和項(xiàng)目實(shí)戰(zhàn),希望能給大家?guī)韼椭?/div> 2022-03-03最新評論

