【问题标题】:Subclipse and JavaHL installation headacheSubclipse 和 JavaHL 安装头痛
【发布时间】:2012-03-07 09:06:42
【问题描述】:

我在安装最新的 Subclipse 插件时遇到了问题。我看到了这篇文章:subclipse: Unable to load default SVN Client,但答案似乎是针对 Subclipse 1.6.x,我认为 1.8.x 出现了新问题。我在 10.6.8 的 Mac 上使用 Eclipse Indigo。根据http://subclipse.tigris.org/wiki/JavaHL#head-5ccce53a67ca6c3965de863ae91e2642eab537de,我安装了 Subclipse 1.8.4,并安装了 Subversion JavaHL Native Library Adapter 1.7.3,这是 Subclipse 1.8 的正确 JavaHL 版本

当我尝试添加一个新的 SVN 存储库时,它显示“操作正在进行中”,然后给我这个错误:

Failed to load JavaHL Library.
These are the errors that were encountered:
no libsvnjavahl-1 in java.library.path
no svnjavahl-1 in java.library.path
no svnjavahl in java.library.path
java.library.path = .:/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java

我还尝试卸载所有 subclipse 插件,而是安装 openCollabNet subversion 包,如下所示:http://subclipse.tigris.org/wiki/JavaHL#head-5bf26515097c3231c1b04dfdb22c036bc511926b

但是当我尝试添加新的 SVN 存储库时,我收到错误:“无法加载默认 SVN 客户端”

任何想法我做错了什么?

谢谢

【问题讨论】:

  • 你确定 lib 是放在默认的 java lib 路径中还是你在 Eclipse 中调整了 lib 路径?
  • 不,我不确定。我将如何检查这个? Eclipse 的插件文件夹中有一个名为 org.tigris.subversion.clientadapter.javahl_1.7.3.jar 的 jar 我需要将它移到另一个文件夹吗?在哪里可以找到默认的 java lib 路径?
  • 请参阅@Rafael Ramos 对另一种称为 SVNKit 的纯 Java 实现的回答。

标签: java eclipse subclipse javahl


【解决方案1】:

转到 Eclipse > 首选项 > 团队 > SVN 在“SVN 接口”下,选择“SVNKit”。 为我工作。

【讨论】:

  • 这是我的首选方法。 Apache Subversion 是用C 编写的,JavaHL 是一种语言绑定依赖项,它允许SubversionJava 交互。头痛的一个常见原因是 32SubversionJavaHL 依赖项安装并运行在 64JVM 上。 SVNKit 是 Subversion 的纯 Java 实现,是 Apache Subversion + JavaHL 配对的替代方案。
  • 简单有效!现在,如果你原谅我会继续真正的工作。
  • 我想编写这个脚本。这可能吗?
  • 除了它很糟糕:你不能合并
【解决方案2】:

我想澄清一下我为解决这个问题所采取的所有步骤,以防像我这样完全新手的未来读者会像我一样对此提出质疑。截至 2012 年 2 月,Subclipse 的最新版本是 1.8,它需要 Subversion 1.7。似乎 Mac 需要额外的 JavaHL 库,我只能在 Subversion 1.6 中找到这些库。因此,您必须删除 Subclipse 1.8 并安装 1.6 版。如果 CollabNet 为 subversion 1.7 提供 JavaHL 库,这一切都可能改变。

  1. 删除 Subclipse 1.8 - 在 Eclipse 的帮助菜单下,选择安装新软件。在靠近底部的右侧,单击链接“已安装什么?”在顶部附近,您应该看到 CollabNet Merge Client,版本 3.0.x 或类似的东西(我认为这是随 Subclipse 1.8 安装的),单击卸载并按照步骤卸载。 (Eclipse 会要求您重新启动,请单击 not now。)向下滚动到底部,如果您看到 Subclipse,版本 1.8.x,请单击卸载并按照步骤操作。同样,当 eclipse 要求重新启动时,单击“not now”。

  2. 下载 Subclipse 1.6。您应该仍处于“安装新软件”窗口中。在靠近顶部的地方,写着 Work with: paste in http://subclipse.tigris.org/update_1.6.x,下载所有文件(你可能不需要这些,但为了安全起见,我都下载了它们)。同样,eclipse 会要求你重新启动,现在不要点击,而是关闭 eclipse。

  3. 从 CollabNet 下载 Subversion - 转到 http://www.open.collab.net/downloads/community/ 并为您的 mac OS 的正确版本下载 Subversion 1.6。下载后,打开安装程序并安装。编辑:此时您可能需要重新启动您的 Mac。

  4. 将颠覆添加到 java 默认库路径 - 现在有点棘手。打开 eclipse.ini 文件(有关查找 eclipse.ini 文件的说明,请阅读:http://wiki.eclipse.org/Eclipse.ini#-vm_value:_Mac_OS_X_Example - 注意它与 eclipse 文件夹中的 config.ini 文件不同)。打开 eclipse.ini 文件后,将 -Djava.library.path=/opt/subversion 复制并粘贴到它的末尾。保存并关闭。

  5. 现在重新启动 Eclipse,希望它能正常工作。

我不知道为什么会是这样一个过程。去年我在一台windows机器上安装了Sublipse,真的很简单。感谢大家的帮助!

请注意:这对于从 1.8 降级到 1.6 并能够与旧存储库同步也很有用。

【讨论】:

  • 我唯一的 2 美分是,在第 3 步之后,您可能需要重新启动您的 Mac。在尝试签出 svn 项目时,我遇到了一些麻烦(一些错误消息,例如“XML 数据格式不正确”)。重启mac后一切正常。
  • 感谢您的提示,我会相应地进行编辑(重启通常不会有什么坏处...)
  • 感谢您的指导,他们为我节省了很多时间和挫败感。请注意,我必须将 java.library.path 更改为 /opt/subversion/lib(我使用 STS 并且在 Mac OS X Lion 上)。此外,如果还有其他需要来自 java.library.path 的东西(它用于任何本机操作系统文件),那么您可能需要将感兴趣的 JavaHL 文件(在错误消息中)复制到默认的 java.library.path (也列出如果 -D 开关不存在,则在错误中)而不是完全为 svn 更改路径。
  • Subversion 尚不可用于 OS X 10.7。 Collab.net 确实有下载,但包装不正确,因此无法安装。有没有其他方式可以安装subversion?
  • 对于那些稍后想要设置 subclipse 10.8.x 的人,您需要按照@roko 的答案中的说明进行操作
【解决方案3】:

我使用了 Rafael https://stackoverflow.com/a/13090191/1446834提供的答案

它也对我有用。

【讨论】:

    【解决方案4】:

    要解决此问题,只需安装以下软件包:

    sudo apt-get install libsvn-java
    

    你必须配置 eclipse.ini 来添加路径 /jni

    例如:

    -Djava.library.path=/usr/lib/x86_64-linux-gnu/jni
    

    在 Ubuntu-13.04 32bits 上,您需要编辑文件:

    $ sudo vi /usr/lib/eclipse/eclipse.ini
    

    并添加路径:

    -Djava.library.path=/usr/lib/i386-linux-gnu/jni
    

    From this blog

    【讨论】:

    • 这也是我的解决方案,如果需要该库,最好的方法就是安装它
    • 对我来说是 /usr/lib/x86_64-linux-gnu/jni。谢谢。
    【解决方案5】:

    查看此链接以获取解决方案:http://www.breathedevelopment.com/node/49 它对我有用,而且很简单,希望对您有所帮助

    # sudo port -v selfupdate
    # sudo port install subversion-javahlbindings
    # sudo port upgrade --enforce-variants active +universal
    

    【讨论】:

    • 单独的链接是considered a poor answer,因为它本身没有意义,并且不能保证目标资源将来仍然存在。请尝试至少包含您链接到的信息摘要。
    • +1 因为你可以在这条路线上使用 subclipse 10.8.x,nb:你需要先安装 xcode 和 macports 才能走这条路线
    • 在 Mac 上的 Eclipse 上安装 SVN 多年来一直是一个令人头疼的问题。这是我为使其工作所做的: 1. 下载 Eclipse Juno EE for mac 64 位 2. 为山狮安装 macports 3. 运行本文中的命令(以“sudo”开头的 3 个命令)这一步至少花了我 30 分钟。重新启动以确保安全 4. 安装 subclipse 1.8x ...为此,转到 Eclipse/安装新软件/添加 subclipse.tigris.org/update_1.8.x 并获取它。您可以在此步骤 5 的其他地方寻找更精确的方向。完成
    • 我已经安装了很多端口。最后一个命令使用 +universal 升级所有内容。
    • 通用意味着您的端口是为支持 Intel 和 PowerPC 而构建的。你能详细说明为什么这是必要的吗?
    【解决方案6】:

    我在 Ubuntu 上,没有 Mac 来验证我的答案,但显然(从您的错误消息中)在 java.library.path 上找不到您的 JavaHL 库。

    这与您提到的插件(org.tigris.subversion.clientadapter.javahl_1.7.3.jar)无关,请勿将其移至其他任何地方。从您的链接 (http://subclipse.tigris.org/wiki/JavaHL#head-5ccce53a67ca6c3965de863ae91e2642eab537de) 我假设您尝试从 openCollabNet 安装,它将库安装到 /opt/subversion 中,该库未列在您的 java.library.path 中。您可以尝试一下并编辑 eclipse.ini 以包含类似

    的行
    -Djava.library.path=/opt/subversion
    

    在 -vmargs 部分;我不确定这是否能解决您的问题,但它可能会给您一个指示(例如,通过获取另一条错误消息继续处理)。

    很抱歉,我无法真正检查我的答案,但此提示可能会帮助您解决问题。

    【讨论】:

    • 谢谢,我认为做到了,尽管我必须卸载最新版本的 subclipse (1.8),并安装旧版本 (1.6),因为 openCollabNet 的 JavaHL 库的唯一版本是 1.6,但在我这样做之后,它就起作用了。
    【解决方案7】:

    我在 Mac 10.9 上使用 Eclipse 版本:Kepler Service Release 1,Build id:20130919-0819,我设法通过使用 brew 安装 Subversion 解决了这个问题:

    brew install --universal --java subversion

    运行上述命令后,显示安装摘要说明:

    svntools have been installed to: /usr/local/opt/subversion/libexec

    我去了 /usr/local/opt/subversion/ 文件夹并搜索了所需的 jar。我在 /lib 中找到了它们,所以在 eclipse.ini 文件中我添加了:

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

    我还使用此链接从 Eclipse 安装了 Subversion 插件:

    http://subclipse.tigris.org/update_1.10.x

    它解决了问题。

    【讨论】:

    • 我所要做的就是运行第一步brew install --universal --java subversion 并重新启动eclipse。很好的解决方案:-)
    【解决方案8】:

    尝试安装javaHL连接器,你可以从这个网站下载这些

    http://www.collab.net/downloads/subversion#tab-3

    【讨论】:

      【解决方案9】:

      我最终放弃了使用 JavaHL,转而安装了 SVNKit 1.6(请务必同时安装“SVN Client Adapter”和“SVNKit Adapter”)。

      ...它奏效了。

      【讨论】:

        【解决方案10】:

        如果在 macosx 上运行,使用 brew for java 安装的正确方法是:

        brew install subversion --with-java
        

        那么您应该执行以下操作:

        sudo mkdir -p /Library/Java/Extensions
        sudo ln -s /usr/local/lib/libsvnjavahl-1.dylib /Library/Java/Extensions/libsvnjavahl-1.dylib
        

        喜欢在项目的 wiki 上提及subclipse-wiki

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多