Java学习笔记

解决Mac下JavaHl(JNI) Not Available

2016-12-29  本文已影响3693人  多了去的YangXuLei

很多人用MyEclipse或Eclipse的svn都被这个JavaHL(JNI)not Available错误给整疯了,当然你也可以点击右边的上下箭头来选择 SVNKit...作为client,这样也可以正常使用subclipse,但是官方建议使用JavaHL作为client,稳定性,速度性都比SVNKit好很多,使用SVNKit有可能出现未知的错误,使你的项目数据受损。(javaHL是通过jni的方式来调用本地的SVN库,所以说速度快,稳定可靠)我梳理下解决方案。

svn.png

首先了解下概念: JavaHL is a part of the Subversion project.具体地说,它是Java语言绑定的Subversion API。 Subversion提供了一个分层的API设计,交付作为本地库(DLL)。

Subclipse是用Java编写的,因此它需要使用JavaHL库能够使用Subversion的API。 Subclipse包括Java层JavaHL,所以需要javahl。


错误原因.jpeg

第一步:安装svn,推荐用在线安装的方法,打开MyEclipse的help-》找到install from site

安装界面
在红圈的地方输入subclipse发行版本地址。因为现在迁移到了github所以网上的大多文章都是比较旧的地址,这是最新地址,找到你需要的版本,比如现在最新的是:
version_Link
一定要好好对比,好好对比,填写地址并且在name填写subclipse,很多人继续完成所有后还是有错误,根据错误原因要么是Subclipse Version和SVN/javaHl Version不匹配,看看自己是否匹配Curret Versions
然后按下图一路到底。
安装.png

然后在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

上一篇 下一篇

猜你喜欢

热点阅读