安装 SVN 插件 subclipse 时可能遇到问题
subclipse 安装完成后,当我们选择使用 的时候还是会提示:javaHL not available,
SVN接口选择
client:选择第一个SVNkit或者JavaHL
官方建议使用JavaHL作为client,稳定性,速度性都比SVNKit好很多,使用SVNKit有可能出现未知的错误,使你的项目数据受损。
JavaHL是通过jni的方式来调用本地的SVN库,所以说速度快,稳定可靠
JavaHL 原来官网 http://subclipse.tigris.org/wiki/JavaHL
目前已经全部转移到github 说明很详细
https://github.com/subclipse/subclipse/wiki
JavaHL是什么?
JavaHL 是Subversion项目的一部分。具体地说,它是java语言结合 Subversion 的 API。提供了一个分层的API设计,作为本地库(DLL,Linux下表现为 .so)。Subversion 命令行只是对这个API的简单应用。API 提供了丰富的功能,同时保持向后兼容性。这就是为什么有这么多伟大的Subversion客户端和工具可用,因为有一个丰富且稳定的API提供了你所需要的所有功能。
Subversion 使用 C语言编写,提供优秀的跨平台支持,也因为C语言编写的库很容易被其他语言所调用。Subversion 项目提供并维护 Java, Perl, Python 和 Ruby 等语言与其交互的功能。后三者是通过SWIG(Simplified Wrapper and Interface Generator ,一个非常优秀的开源工具,支持您将 C/C++ 代码与任何主流脚本语言相集成)库和语言自身调用本地库语言接口的能力实现的。JavaHL 是“高级别”的API,提供自定义编写的C++代码作为java代码和本地库之间的JNI桥梁。这样的设计使我们能够提供一个很好的 java API 来调用 Subversion。
JavaHL 实质上包括四个部分:
相对较薄的java代码层提供的API,使其可以通过 java 调用。
一个C++库(javahl 库或 libsvnjavahl-1)。java层到这个层的交互使用java本地接口(JNI)调用。C++层就是“高级别”的API的实现。例如,可以提供一个简单的java API:“提交这个文件列表,使用此提交消息”。C++层负责内存管理和执行所有底层 Subversion API调用需要完成的请求。
Subversion 库本身。命令行客户端将安装和使用相同的库。另外,其他Subversion客户端,如TortoiseSVN或AnkhSvn也使用相同的库。
Subversion 库的依赖项。Subversion 需要一些外部库来完成操作。最大的是 Apache Portable Runtime (APR)可移植运行时,但它也需要像Neon库的HTTP客户端和OpenSSL处理加密等。
应用程序要使用 JavaHL 这四层都是必需的。
获取正确的版本
WIKI 上是把这一节放在 JavaHL 是什么 之前的,因为知道你需要使用 Subclipse 的哪个版本是非常重要的。JavaHL 是 Subversion 的一部分,所以它的版本必须和你安装的Subversion 命令行客户端的版本匹配。每个Subclipse版本通常只支持一个单一的Subversion客户端版本(由于API的差异)。确保你获取与你的 Subclipse版本正确的 javahl 版本。
正确的版本对应关系见下图:
《Mac 安装 JavaHL》 https://blog.csdn.net/weixin_41791279/article/details/86015128