Error occurred during initialization of VM Java虚拟机初始化失败

遇到这个问题,其实很多人就害怕了,根本找不到问题的原因…
JVM那可是一个遥不可攀的东西,我写Java的,JVM报错了我咋整?
首先,先排查一下你的环境是否按照规矩配置好了

1.如果在Eclipse上运行出现了这个错误:

估计是你的环境没有配置好,eclipse主要是通过JRE的运行环境来执行你的代码
右击项目名,找到properties属性:
1、点击Java Build Path,找到Libraries;
2、点击Libraries进入;
3、双击JRE System Library如下图所示。

Error occurred during initialization of VM Java虚拟机初始化失败_第1张图片

Error occurred during initialization of VM Java虚拟机初始化失败_第2张图片
Error occurred during initialization of VM Java虚拟机初始化失败_第3张图片
Error occurred during initialization of VM Java虚拟机初始化失败_第4张图片
Error occurred during initialization of VM Java虚拟机初始化失败_第5张图片

Error occurred during initialization of VM Java虚拟机初始化失败_第6张图片
然后Finish即可

2.IDEA中出现这个情况

File > Project Structure
Error occurred during initialization of VM Java虚拟机初始化失败_第7张图片
Error occurred during initialization of VM Java虚拟机初始化失败_第8张图片
一般情况下,SDKs都会随着变化,如果没变,你就手动点一下
Error occurred during initialization of VM Java虚拟机初始化失败_第9张图片
Modules也一样
Error occurred during initialization of VM Java虚拟机初始化失败_第10张图片
然后OK即可

自己编译的JDK进行debug时出现这样的情况

需要知道,一般在java.lang包下的东西都与虚拟机挂钩,在修改了java.lang包下的一些代码后,需要重新编译,并且需要确保jvm在运行时不会调用这些方法,或者你在执行某个代码的方法不会被其他的类相互之间调用,如果出现相互之间调用的情况…就极有可能导致Java虚拟机无法初始化

比如,在ArrayList的构造方法中就不能随便添加System.out.println()打印语句
Error occurred during initialization of VM Java虚拟机初始化失败_第11张图片
一般…写写注释得了,别像我一样乱改…
这些rt.jar包下的代码,谁也不知道会不会出现什么特殊的情况
就比如我在java.util.ArrayList.java中的add方法添加了这么一行打印语句
Error occurred during initialization of VM Java虚拟机初始化失败_第12张图片
在Test的main方法中创建了一个ArrayList对象
Error occurred during initialization of VM Java虚拟机初始化失败_第13张图片
理论上,我没有调用add方法,应该不会执行add方法吧…
实际上,我运行之后发现…
Error occurred during initialization of VM Java虚拟机初始化失败_第14张图片

原来在调用list.add()之前,ArrayList其实已经运行过N次了,只是咱不知道而已…





这是我之前修改了HashMap.java源码中的一些代码,结果就导致虚拟机起不来了,还好后面复原了
Error occurred during initialization of VM Java虚拟机初始化失败_第15张图片
原谅我的无知…






如果对你有帮助...点个赞呗~❤️ 谢谢您!

你可能感兴趣的:(JVM,java,问题解决,java,jvm,eclipse)