Linux下Subclipse的JavaHL


    Subclipse是一个很优秀的SVN客户端。它提供了ClientAdapter、JavaHL和SVNKit等方式于SVN服务交互。官方强烈推荐使用JavaHL的方式。JavaHL使用JNI的调用SVN的本地库。速度快,稳定可靠。
     但是在Linux下,就比较麻烦了。默认安装好后, Subclipse的配置界面中,显示的javaHL的状态是“unavailable“。这是因为系统中没有安装svn的javahl。经过一段时间的折腾。终于搞定了它。期间走了不少弯路,今天把它记下来。希望能对大家有所帮助。
     当然,我们可以通过诸如Ubuntu的apt-get等方法来获取javahl。不过,我们的目标是:DIY。
     为了达到让Subclipse使用javaHL的目的。我们需要完成如下的工作:
    1。下载Subversion的源代码。
    2。编译Subversion的javaHL库,并安装
    3。相关配置

     下载Subversion源码

    Subversion目前的版本主要有:1.4.x、1.5.x、1.6.x。相应的,与此对应的Subclipse的版本为:1.4.x、1.5.x、.1.6.x。所以,在下载之前,需要确定我们使用的Subclipse的版本。查看Subclipse版本的方法有很多种。例如,可以通过菜单Help -> About Eclipse Platform窗口中的Subclipse按钮来查看。需要注意的是。如果版本不匹配,安装javahl后,Subclipse是无法识别的。
    偶比较追新。选择的是1.6。
    Subclipse 1.6的Update Site网址是:http://subclipse.tigris.org/update_1.6.x
    我们需要去官方网站下载Subversion 1.6的相关源码以及编译用的依赖包。大家可以在Subversion的首页找到源码的下载连接。网址是:http://subversion.tigris.org/。不过,只有源代码是不行的。还需要去它的Source Release Area中下载依赖包。网址是:http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=260&expandFolder=74。
    最终,我们得到的是subversion-1.6.x.tar.bz2和subversion-deps-1.6.x.tar.bz2。

     编译安装Subversion的javaHL库

    首先,创建一个临时的工作目录。例如,我在我的home目录下创建了一个临时的工作目录:
   
    leon@leon:~$mkdir work

    然后,将两个包复制到了那个目录。然后使用tar命令解压两个压缩包。最终,会在临时目录下得到一个名为subversion-1.6.x的目录。
    在编译前, 我们还需要准备一下的环境:

     1。Java, 需要一个jdk。我的安装/usr/local/jdk中。

     2。Openssl的开发库。如果用的Ubuntu, 可以使用sudo apt-get install libssl-dev。来安装Openssl-dev到你的系统中。奇怪的是,为什么他们给Openssl-dev起名叫做“libssl-dev“呢?

     3。JUnit 3.8.1的jar文件。我把它放在了我的work临时工作目录中。安装完成后,我们需要使用它来测试一下javahl是否安装正确了

     4。一个标准的gcc编译环境。如果用Ubuntu, 可以使用sudo apt-get install build-essential来安装

    准备好后,我们就可以编译了。首先配置源代码:

    ./configure --with-jdk=/usr/local/jdk --with-junit=/home/leon/work/junit-3.8.1.jar --enable-javahl

    这时候,我们可去作点儿别的。等它配置完后,可能会有一个警告,不用管它。接下来执行:

    make javahl

    再去作点儿别的事情吧。例如去听听音乐,或者玩游戏。等它编译后,我迫不及待了执行了安装的命令:

    make install-javahl

    完成后,先测试一下javahl是否工作正常:

    make check-javahl

    相关配置

    一般来说,应该不会有啥问题。接下来,启动安装好Subclipse的Eclipse(如果Eclipse一直没关,则需要重新启动)。打开菜单:Window -> Preferences窗口,然后展开左侧TreeView中的Team,选中下面的"SVN"。这时,在SVN 接口的地方,javahl仍然是"unavailable"!我当时就抓狂了……
    经过冷静分析,查找资料后才得知:这时由于Subclipse没有找到javahl的库所致。这种情况在一些Linux发行版上会发生,例如我现在用的Ubuntu 9.04。具体的原因就是刚才的make install-javahl将相关的库安装到了/usr/local/lib下。而java是不会在这个路径中搜索相关的库的。让java去搜索/usr/local/lib的方法有很多中,我采取的方式是修改eclipse.ini文件。它位于eclipse的目录中。在-vmargs一行下,加入了:

    -Djava.library.path=/usr/local/lib

    再重启Eclipse, 在Preferences窗口中。看到了正确javahl。哈哈!终于成功啦!

    希望我的经历能给大家带来一些帮助。如果有什么问题,请一定要以最快速的联系我。enjoy!
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值