錯誤現象
- 項目無版本控制狀態圖標
- SVN Import 報錯:
unable to default SVN client
- 右鍵 Team 菜單項缺失或異常
- 同事相同配置正常,僅當前機器異常
根本原因
缺少 JAVAHL 庫。Subclipse/SVNKit 需要 JNI 層庫 (javahl.dll / libsvnjavahl-1.so) 與本地 Subversion 庫交互,MyEclipse 自帶插件不包含此原生庫。
解決方案
Windows 環境
- 下載對應版本的 SlikSVN (包含 javahl.dll)
- 官網:https://sliksvn.com/download/
- 選擇與 Eclipse 位數匹配版本 (32/64位)
- 安裝 SlikSVN,勾選「Add to PATH」
- 重啟 MyEclipse
- 驗證:Window → Preferences → Team → SVN → SVN Interface → 選擇 JavaHL (JNI) → 應顯示版本信息而非錯誤
Linux/Mac 環境
# Ubuntu/Debian
sudo apt-get install libsvn-java
# CentOS/RHEL
sudo yum install subversion-javahl
# Mac (Homebrew)
brew install subversion --with-javahl
然後在 eclipse.ini 中添加庫路徑:
-Djava.library.path=/usr/lib/x86_64-linux-gnu/jni:/usr/local/lib
替代方案:使用 Pure Java 實現 (SVNKit)
- Window → Preferences → Team → SVN → SVN Interface
- 選擇 SVNKit (Pure Java)
- Apply → OK → 重啟 MyEclipse
優點:無需原生庫,跨平台;缺點:性能略低,部分高級功能不支持。
驗證步驟
- 右鍵項目 → Team → Share Project → SVN
- 輸入倉庫 URL 完成導入
- 檢查項目圖標出現版本標識 (數字/符號)
- 右鍵 → Team → Show History 正常顯示
參考資源
MyEclipse SVN JavaHL 配置圖文教程
避坑提示
- Eclipse 位數 (32/64) 必須與 JDK、SlikSVN 位數一致
- 多版本 JDK 環境確保 Eclipse 使用的 JDK 與 JAVAHL 匹配
- 殺毒軟件可能攔截 javahl.dll,需加入白名單
- Windows 路徑含中文/空格可能導致載入失敗