Eclipse 3.0 啟動彈出錯誤對話框,查看 configuration/xxxx.log 顯示:
!MESSAGE Error registering XML parser services.
!STACK 0
java.lang.ClassNotFoundException: javax.xml.parsers.SAXParserFactory
at java.net.URLClassLoader$1.run(Unknown Source)
...
java.version=1.3.1_01
java.vendor=Sun Microsystems Inc.
明明系統安裝的是 JDK 1.4.1,日誌卻顯示 1.3.1_01。
安裝 Oracle 9i Client 後,其自帶 JRE 1.3.1 被置於系統 PATH 最前端,導致 Eclipse 啟動時載入錯誤版本 JVM。
cmd → path 查看環境變數順序:
D:\oracle\ora92\bin;G:\Program Files\Oracle\jre\1.3.1\bin;G:\Program Files\Oracle\jre\1.1.8\bin;%SystemRoot%\system32;...;D:\Borland\JBuilderX\jdk1.4
調整系統環境變數 PATH,將正確 JDK 路徑(%JAVA_HOME%\jre\bin 或 %JAVA_HOME%\bin)移至最前端:
D:\Oracle\ora92\bin;%JAVA_HOME%\jre\bin;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\system32\Wbem
重啟 Eclipse,問題解決。Oracle Client 運作正常未受影響。
JAVA_HOME 控制 JDK 版本,PATH 僅引用 %JAVA_HOME%\bin。PATH,必要時用啟動腳本指定 -vm 參數:
eclipse.exe -vm "C:\Program Files\Java\jdk1.5.0_02\bin\javaw.exe"
java -version 與 Eclipse Help → About → Configuration 顯示版本一致性。