Ubuntu16.04 Eclipse 安装 SVN 插件 subclipse 时 JavaHL 报错解

系统环境:
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.x1.8.x
1.8.x1.7.x
1.6.x1.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 了

Eclipse 的详细介绍:请点这里
Eclipse 的下载地址:请点这里

相关推荐