很多人用MyEclipse或Eclipse的svn都被这个JavaHL(JNI)not Available错误给整疯了,当然你也可以点击右边的上下箭头来选择 SVNKit...作为client,这样也可以正常使用subclipse,但是官方建议使用JavaHL作为client,稳定性,速度性都比SVNKit好很多,使用SVNKit有可能出现未知的错误,使你的项目数据受损。(javaHL是通过jni的方式来调用本地的SVN库,所以说速度快,稳定可靠)我梳理下解决方案。
首先了解下概念: JavaHL is a part of the Subversion project.具体地说,它是Java语言绑定的Subversion API。 Subversion提供了一个分层的API设计,交付作为本地库(DLL)。
Subclipse是用Java编写的,因此它需要使用JavaHL库能够使用Subversion的API。 Subclipse包括Java层JavaHL,所以需要javahl。
第一步:安装svn,推荐用在线安装的方法,打开MyEclipse的help-》找到install from site
在红圈的地方输入subclipse发行版本地址。因为现在迁移到了github所以网上的大多文章都是比较旧的地址,这是最新地址,找到你需要的版本,比如现在最新的是:
一定要好好对比,好好对比,填写地址并且在name填写subclipse,很多人继续完成所有后还是有错误,根据错误原因要么是Subclipse Version和SVN/javaHl Version不匹配,看看自己是否匹配Curret Versions。
然后按下图一路到底。
然后在MyEclipse的偏好设置->Team 主菜单选择Perspective为SVN资源库研究。之后再点Team下拉导航的SVN就能看到开篇说的经典错误了,哈哈哈。
第二步就是安装javahl
我推荐用HomeBrew安装,不知道就自己Google吧,HomeBrew是用Ruby来实现的,因为Mac OS X 已经默认安装了Ruby,所以我们直接执行这条命令就可以了。不放心的可以在终端输入:ruby -v
来查看Ruby的版本。
在终端输入:
ruby -e "$(curl -fsSLhttps://raw.github.com/mxcl/homebrew/go)"
回车,接下来就开始在线安装HomeBrew了,安装时间可能较长,视网络状况而定。homebrew默认是被安装在usr/local下,bin就是它的主目录,并且bin目录的路径已被加入path,在任意目录可以直接执行brew命令。通过brew安装的包都存放在use/local下的Cellar目录中。HomeBrew安装好了之后一条命令就能安装JavaHL了,注:需要翻墙:
brew install subversion --with-java
(官方的我懒得翻译了,很简单)After the installation, you need to run these commands which put a link to the JavaHL library into the folder that the JVM looks for JNI libraries. This causes it to automatically be seen by the JVM when you run Eclipse:
sudo mkdir -p /Library/Java/Extensions sudo ln -s /usr/local/lib/libsvnjavahl-1.dylib /Library/Java/Extensions/libsvnjavahl-1.dylib
最后重启你的IDE就OK了。就是这么SoEasy