首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 綜合教學

解決 Eclipse 閃退:JDK 多版本共存導致 java.lang.NoClassDefFoundError: java/lang/Object

     編輯:Java 綜合教學

解決 Eclipse 閃退:JDK 多版本共存導致 java.lang.NoClassDefFoundError: java/lang/Object

本地原有 JDK 1.7,新裝 JDK 8 後 Eclipse 無法啟動,控制台報錯:

Error occurred during initialization of VM
java/lang/NoClassDefFoundError: java/lang/Object

根因分析

Windows 系統目錄殘留舊版 Java 可執行文件,導致 java -version 解析錯誤:

  1. C:\Windows\System32\java*.exe(系統級注冊)
  2. C:\ProgramData\Oracle\Java\javapath\(Oracle 安裝器創建的符號鏈接目錄,優先級極高)

這兩個路徑在 PATH 環境變量中優先於用戶配置的 JDK 目錄,且指向版本不一致的運行時組件,導致 JVM 初始化失敗。

解決方案

  1. 重命名 C:\Windows\System32\java.exe、javaw.exe、javaws.exe
  2. 重命名 C:\ProgramData\Oracle\Java\javapath\ 下所有文件
  3. 驗證:java -version 正確輸出目標版本(如 1.7.0_80)
C:\Users\Administrator>java -version
java version "1.7.0_80"
Java(TM) SE Runtime Environment (build 1.7.0_80-b15)
Java HotSpot(TM) 64-Bit Server VM (build 24.80-b11, mixed mode)

最佳實踐建議

  • 使用 JAVA_HOME + %JAVA_HOME%\bin 統一管理 PATH
  • 避免直接修改系統目錄,改用版本管理工具
  • 推薦工具:jabba、SDKMAN!、Windows 下 nojdk
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved