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

解決 Eclipse 啟動報錯:Failed to load the JNI shared library jvm.dll

     編輯:Java 相關知識

錯誤現象

雙擊 eclipse.exe 彈出錯誤對話框:

Failed to load the JNI shared library "C:\Program Files\Java\jre1.8.0_xxx\bin\client\jvm.dll"

Eclipse 無法啟動,無法進入工作區選擇界面。

根本原因:架構不匹配

Eclipse 位數(32/64 位)必須與 JDK/JRE 位數完全一致。 常見場景:

  • 64 位 Windows 安裝了 32 位 JDK,下載了 64 位 Eclipse(或反之)。
  • 環境變量 PATH 指向了錯誤位數的 java.exe。
  • 多版本 JDK 共存,eclipse.ini 未指定正確 -vm 路徑。

解決方案(按推薦順序)

方案一:統一架構(最徹底)

  1. 檢查系統:Win+Pause → 系統類型(64 位作業系統)。
  2. 檢查 Eclipse:解壓目錄下 eclipse.exe 右鍵屬性 → 兼容性 → 若「以兼容模式運行」勾選 32 位,則為 32 位版本。或查看 plugins/org.eclipse.equinox.launcher.win32.win32.x86_64_*(64 位)vs win32.win32.x86_*(32 位)。
  3. 檢查 JDK:java -version 輸出含 64-Bit Server VM 為 64 位,否則 32 位。
  4. 統一為 64 位:卸載 32 位 JDK,安裝 64 位 JDK(推薦),或下載 32 位 Eclipse(不推薦,受限於 4GB 堆)。

方案二:配置 eclipse.ini 指定 JVM(推薦,無需改環境變量)

在 eclipse.ini 首行添加 -vm 參數,指向 64 位 JDK 的 jvm.dll 所在目錄:

-vm
C:/Program Files/Java/jdk-17/bin
--launcher.appendVmargs
-vmargs
-Dosgi.requiredJavaVersion=11
-Xms256m
-Xmx2G
--add-modules=ALL-SYSTEM
...

關鍵點:

  • -vm 必須在 -vmargs 之前,單獨佔一行,下一行寫路徑(目錄而非 dll 文件)。
  • 路徑用正斜杠 /,指向 JDK bin 目錄(含 jvm.dll 的父目錄)。
  • JDK 版本需滿足 Eclipse 要求(如 Eclipse 2023-09 需 JDK 11+)。

方案三:修正環境變量 PATH

  1. Win+S 搜「編輯系統環境變量」→ 環境變量。
  2. 系統變量 Path 中,將 C:\Program Files\Java\jdk-17\bin(64 位)移至最前,移除/置後 32 位路徑(Program Files (x86))。
  3. 用戶變量 Path 同理。
  4. 重新打開命令行驗證:java -version 顯示正確版本。

方案四:複製 jvm.dll(不推薦,治標不治本)

若確確實實無法安裝匹配 JDK,可從正確位數 JDK 的 jre/bin/client 或 server 目錄複製 jvm.dll 到 Eclipse 報錯路徑,但會導致版本不一致、功能缺失,極不推薦。

驗證修復

  1. 雙擊 eclipse.exe 正常彈出工作區選擇框。
  2. 進入 Eclipse → Help → About Eclipse IDE → Installation Details → Configuration,搜索 eclipse.vm 應指向正確 jvm.dll 路徑。
  3. 新建 Java Project → 建構路徑 → JRE System Library 應顯示正確 JDK 版本。

避坑指南

  • 不要 將 JDK 安裝路徑加入 CLASSPATH 環境變量(污染類加載)。
  • 不要 在 eclipse.ini 中寫具體 jvm.dll 文件路徑(需目錄)。
  • 優先 使用方案二(-vm 參數),項目級隔離,不影響系統其他 Java 應用。
  • JDK 9+ 模組化後,jvm.dll 位於 bin/server/(64 位)或 bin/client/(32 位),-vm 指向 bin 目錄即可自動查找。

總結

Eclipse 與 JDK 位數必須匹配 是鐵律。最佳實踐:64 位系統 + 64 位 JDK + 64 位 Eclipse + eclipse.ini 指定 -vm。一勞永逸,避免環境變量污染與版本衝突。

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