【问题标题】:Exception in thread "main" java.lang.UnsatisfiedLinkError: Could not load SWT library线程“主”java.lang.UnsatisfiedLinkError 中的异常:无法加载 SWT 库
【发布时间】:2010-06-06 02:24:43
【问题描述】:

我遇到以下错误的原因是什么:

线程“主”java.lang.UnsatisfiedLinkError 中的异常:无法加载 SWT 库。

我在 Ubuntu 9.04 Jaunty 上使用 Eclipse 3.5 SE。

我该如何解决这个错误?

【问题讨论】:

    标签: java eclipse ubuntu


    【解决方案1】:

    我在 32 位系统上使用 Oracle Java 7 和 Eclipse 时遇到了同样的问题。

    libswt-gtk-3.6-javalibswt-gtk-3.6-jni 已安装。 What helped:

    cd ~/.swt/lib/linux/x86
    ln -s /usr/lib/jni/* .
    

    也许这可以通过重新配置 Java 替代品或其他方式来完成。

    【讨论】:

    • 在 Ubuntu 12.04 上使用 64 位 Java(路径略有不同)也为我解决了这个问题。
    • 我在使用 32 位 Java 6 更新到 Precise (12.04) 后遇到了这个问题。这个解决方案也对我有用。
    • ubuntu 12.04 64 位,安装了 java1.7 更新 5。除了“x86”->“x86_64”之外的相同命令工作
    【解决方案2】:

    我相信Mikolaj Lechtanski's workaround 更优雅。

    创建或编辑 /etc/eclipse.ini

    粘贴在里面:

    -vmargs
    -Djava.library.path=/usr/lib/jni
    

    退出

    确保文件可读:

    sudo chmod 755 /etc/eclipse.ini
    

    【讨论】:

      【解决方案3】:

      这意味着找不到本机库。
      要么您拥有 32 位库,并且在 64 位机器上运行,反之亦然。
      还要确保您正确设置了-Djava.library.path=

      See this page on how to run outside of eclipse

      【讨论】:

        【解决方案4】:

        您使用的是什么版本的 Java 和 Eclipse,它们是 32 位还是 64 位,您是如何安装它们的?

        Eclipse 使用它自己的称为 SWT 的 GUI 库(它不使用 Java 的 AWT 或 Swing),为此它需要一些本机(非 Java)库。如果您安装了 32 位 Java,则需要 32 位 Eclipse;如果您安装了 64 位 Java,则需要 64 位 Eclipse(注意,Eclipse downloads 页面有适用于 Linux 的 32 位和 64 位版本)。

        (请注意,这并不取决于您的 Linux 操作系统是 32 位还是 64 位,而是取决于您的 Java 是否是)。

        【讨论】:

        • 我可以在 64 位 PC 上安装 Java-32 位吗(运行 64 位操作系统?)。
        • @Google 是的,应该可以。在 Windows 上很容易,只需运行 32 位 Java 的安装程序;在 Linux 上,您可能需要安装 32 位兼容性库(具体取决于您的 Linux 发行版)。
        【解决方案5】:

        通过“ssh -X”隧道在服务器上远程运行 Eclipse 时,我遇到了类似的问题。我在服务器上使用“sudo apt-get install libswt-gtk-3.6-java”解决了它。

        【讨论】:

          【解决方案6】:

          在使用 X11 转发的无头服务器上启动一些 GUI Java 应用程序时,我只安装了 openjdk-7-jre-headless。安装完整的 jre 解决了这个问题:

          apt-get install openjdk-7-jre
          

          【讨论】:

            【解决方案7】:

            我最终做了

             cd ~/.swt/lib/macosx/x86_64
             ln -s /usr/lib/java/* .
            

            解决了这个问题。

            【讨论】:

              猜你喜欢
              • 2014-02-12
              • 2015-08-10
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多