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

Eclipse 點擊「Show in System Explorer」卡死無響應?多版本 JDK 衝突完整解決方案

     編輯:Java 綜合教學

Eclipse 點擊「Show in System Explorer」卡死無響應?多版本 JDK 衝突完整解決方案

Eclipse 內建的「Show in System Explorer」功能原本相當方便,能快速在檔案總管中開啟專案資料夾。但某天突然失效,點擊後 Eclipse 直接卡死、未響應,甚至拋出 exit code = -805306369 的錯誤訊息。經過排查,根本原因竟然是本機安裝了多個版本的 JDK 導致衝突。

問題現象與錯誤日誌

當點擊該功能時,Eclipse 進程凍結,控制台輸出如下錯誤堆疊:

Java was started but returned exit code= -805306369
C:\Windows\system32\javaw.exe
-Dosgi.requiredJavaVersion=1.5
-Xms40m
-Xmx512m
-jar D:\Program Files\eclipse\plugins/org.eclipse.equinox.launcher_1.1.0.v20100507.jar
...
-vm C:\Windows\system32\javaw.exe
-vmargs
...

關鍵線索在於 -vm C:\Windows\system32\javaw.exe 這行,指向系統目錄下的 Java 執行檔,而非 Eclipse 專用的 JDK。

根本原因分析

本機同時安裝了 JDK 6 與 JDK 7 兩個版本。Eclipse 啟動時若解析到系統路徑 C:\Windows\system32\javaw.exe(這通常是最後安裝的 JRE 複製過去的),而該版本與 Eclipse 當前運行環境不匹配,導致啟動外部程序時 JVM 崩潰。

解決方案

方案一:移除多餘 JDK(最徹底)

只保留與 Eclipse 版本對應的 JDK,將其他版本完整卸載。例如 Eclipse 為 64 位元版本,則僅保留 64 位元 JDK 7 或更新版本,移除 JDK 6 及所有 32 位元殘留。

方案二:在 eclipse.ini 指定專用 JDK(推薦,保留多版本)

若開發環境必須共存多個 JDK,請在 eclipse.ini 檔案最前方添加 -vm 參數,強制指定 Eclipse 使用的 JDK 路徑:

-vm
D:/Java/jdk1.7.0_80/bin/javaw.exe
-vmargs
-Dosgi.requiredJavaVersion=1.7
-Xms256m
-Xmx1024m
...

注意: -vm 必須放在 -vmargs 之前,且路徑指向 JDK 的 bin/javaw.exe(而非 JRE)。重啟 Eclipse 後,問題即可解決。

驗證修復

修改完成後,再次點擊「Show in System Explorer」,檔案總管應能即時彈出,Eclipse 不再卡死。若仍有問題,請檢查 eclipse.ini 中的架構一致性(32/64 位元必須匹配)。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved