首頁 > 軟體

Ubuntu16.04 Eclipse 安裝 SVN 外掛 subclipse 時 JavaHL 報錯解決

2020-06-16 17:02:15

系統環境:
Ubuntu 16.04 64bit
Eclipse Neon for J2EE
JDK 8
svn伺服器端版本 1.7

首先檢查svn伺服器版本, 如果svn伺服器版本比svn用戶端版本低, 一定是連結不上的!

安裝 SVN 外掛 subclipse 時 JavaHL 報錯.
網上搜尋後, 似乎只有 Mac OS X 和 Ubuntu 系統下的 Eclipse 才有這個問題.

JavaHL - 負責呼叫SVN的介面, 通過它來滿足 Eclipse 中使用SVN的需求(在 Ubuntu 軟體源裡的包名叫libsvn-java)

同類軟體還有 SVNKit. 但是建議使用 JavaHL , 不建議使用 SVNKit . 後者不穩定, 可能損壞SVN倉庫.

subclipse 版本和 JavaHL版本對應關係

SubclipseJavaHL
1.10.x 1.8.x
1.8.x 1.7.x
1.6.x 1.6.x

解決 JavaHL 報錯

失敗 - 使用 Ubuntu 16.04 自帶源

直接
sudo apt install libsvn-java
顯示:

需要下載 556 kB 的歸檔。
解壓縮後會消耗 1,062 kB 的額外空間。
獲取:1 http://cn.archive.ubuntu.com/ubuntu xenial/universe amd64 libsvn-java amd64 1.9.3-2ubuntu1 [556 kB]
已下載 556 kB,耗時 0秒 (961 kB/s)  
正在選中未選擇的軟體包 libsvn-java。
(正在讀取資料庫 ... 系統當前共安裝有 290230 個檔案和目錄。)
正準備解包 .../libsvn-java_1.9.3-2ubuntu1_amd64.deb  ...
正在解包 libsvn-java (1.9.3-2ubuntu1) ...
正在設定 libsvn-java (1.9.3-2ubuntu1) ...

說明 Ubuntu 16.04 自帶源的libsvn-java(JavaHL)版本是1.9.3, 不符合 subclipse 的要求

失敗 - 新增 JavaHL 1.8.x 的源

Ubuntu16.04 自帶軟體源的 JavaHL 還是1.9版本的, subclipse 1.10.x 嚴格要求使用 JavaHL 1.8.x, 所以我們需要新增 JavaHL 1.8.x 的源

sudo add-apt-repository ppa:dominik-stadler/subversion-1.8

sudo apt-get update
報錯:

W: 倉庫 “http://ppa.launchpad.net/dominik-stadler/subversion-1.8/ubuntu xenial Release” 沒有 Release 檔案。
N: 無法認證來自該源的資料,所以使用它會帶來潛在風險。
N: 參見 apt-secure(8) 手冊以了解倉庫建立和使用者設定方面的細節。
E: 無法下載 http://ppa.launchpad.net/dominik-stadler/subversion-1.7/ubuntu/dists/xenial/main/binary-amd64/Packages  404  Not Found
E: 部分索引檔案下載失敗。如果忽略它們,那將轉而使用舊的索引檔案。

其中, xenial是 Ubuntu 16.04 的版本名. 很明顯,
dominik-stadler/subversion-1.8 沒有 Ubuntu 16.04 的版本.

事實上, dominik-stadler/subversion-1.7 也沒有Ubuntu 16.04 的版本, 更不用說dominik-stadler/subversion-1.6了.

結論是, 目前(2016-06-26)在 Ubuntu 16.04 上不能使用subclipse 1.10.x 或 更早版本.

成功 - 使用同類外掛代替 Subclipse

使用 Subversive 4.0 代替 Subclipse

Subversive 4.0 功能一樣強大, 最重要的是它支援JavaHL 1.9.x

在Eclipse選單欄–>Help–>Eclipse Marketplace
搜尋方塊中輸入Subversive

點選安裝, 進入安裝嚮導, 一直下一步, 同意軟體版權宣告後安裝完成, 重新啟動 Eclipse

這時會報錯:
JavaHL not Found

設定Eclipse啟動項

我們已經通過Ubuntu 16.04 的自帶源安裝了 JavaHL( libsvn ) 1.9.3

Ubuntu 12.04以後,JavaHL Library的位置由原來 /usr/lib/jni 改為了/usr/lib/x86_64-linux-gnu/jni

開啟eclipse安裝目錄下的eclipse.ini檔案,將原來設定的
增加一行:

-Djava.library.path=/usr/lib/x86_64-linux-gnu/jni

最終檔案內容如下:

-startup
plugins/org.eclipse.equinox.launcher_1.3.200.v20160318-1642.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.gtk.linux.x86_64_1.1.400.v20160518-1444
-product
org.eclipse.epp.package.jee.product
--launcher.defaultAction
openFile
-showsplash
org.eclipse.platform
--launcher.defaultAction
openFile
--launcher.appendVmargs
-vmargs
-Dosgi.requiredJavaVersion=1.8
-Djava.library.path=/usr/lib/x86_64-linux-gnu/jni
-XX:+UseG1GC
-XX:+UseStringDeduplication
-Dosgi.requiredJavaVersion=1.8
-Xms256m
-Xmx1024m

重新啟動Eclipse, 可以看到 Windows –> Preferences –> Team –> SVN
右側有好幾個標籤, 選擇 SVN Connector標籤, 下拉式選單已經是 JavaHL 1.9.3 了

Ubuntu 15.04中使用Eclipse 4.4、Java 8以及WTP http://www.linuxidc.com/Linux/2016-04/129821.htm

Ubuntu 14.04 LTS安裝Java 8和Eclipse 4.4  http://www.linuxidc.com/Linux/2014-11/109217.htm

Ubuntu 16.04安裝Eclipse筆記 :http://www.linuxidc.com/Linux/2016-12/138755.htm

Ubuntu 16.04安裝Eclipse http://www.linuxidc.com/Linux/2016-07/133482.htm

Ubuntu 16.04安裝Eclipse並建立桌面快捷方式  http://www.linuxidc.com/Linux/2017-02/140909.htm

如何在Ubuntu 14.04中安裝最新版Eclipse  http://www.linuxidc.com/Linux/2014-08/105090.htm


IT145.com E-mail:sddin#qq.com