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版本对应关系
Subclipse | JavaHL |
---|---|
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 了
Eclipse 的详细介绍:请点这里
Eclipse 的下载地址:请点这里