key words: eclipse, 一闪而过,Error occurred during initialization of JVM, java/lang/NoClassDefFoundError:java/lang/Object.
今天早上突然发现,双击eclipse图标之后,常见的那个对话框一闪而过,然后eclipse也没有进一步的响应。
于是在google上寻找解决方法,但是没有很确定的答案。
打开windows的cmd后,尝试着键入java命令。得到如下的exception:
Error occurred during initialization of JVM, java/lang/NoClassDefFoundError:java/lang/Object.
下面是解决方法:
1. 如果你是admin权限,ctrl+F 然后搜索java.exe,如果有找到位于C:/WINDOWS/system32 系统文件夹中存在java.exe, javaw.exe etc.全部删除。应该可以解决问题。
2. 如果你没有admin权限,无法对C系统盘进行操作。但是你对eclipse的文件夹有操作权限,则打开eclipse文件夹中的,eclipse.ini 文件。
在
-vmargs 之前添加
-vm
java.exe 的绝对路径(例如:C:/java/jdk/bin/java.exe)
指定javaVM 后eclipse就可以正常运行了。
起因:
调用java命令时,windows将会从环境变量中找寻这个命令。
猜测系统文件夹的优先级总是比较高的,高于指定的JAVA_HOME.
当你的C:/WINDOWS/system32中存在java.exe的时候,第一个找到的java.exe肯定是系统文件夹里的,所以无论你重装eclipse或者重装jdk都没有特别的效果。
但是当你指定jvm的路径时可以跳过这个java.exe, 而找到真正的java.exe。所以指定路径后一切问题解决。
Reference: