【问题标题】:Ubuntu: SWT App Can't Load GTK LibraryUbuntu:SWT 应用程序无法加载 GTK 库
【发布时间】:2012-11-17 19:30:06
【问题描述】:

我已经提供了 Linux SWT jar 并将我的应用程序打包到 Eclipse 中以将 swt.jar 包含在我的应用程序的 jar 中。当我尝试在 Ubuntu 上运行它时,我收到以下错误文本(仅发布原因):

原因:java.lang.UnsatisfiedLinkError:无法加载 SWT 库。原因:

java.library.path 中没有 swt-pi-gtk-4234

java.library.path 中没有 swt-pi-gtk

/home/nifty/.swt/lib/linux/x86/libswt-pi-gtk-4234.so: libgtk-x11-2.0.so.0: 无法打开共享对象文件:没有这样的文件或目录

无法加载库:/home/nifty/.swt/lib/linux/x86/libswt-pi-gtk.so

这表明它无法加载 GTK 文件,但除此之外的任何内容,我都不知所措。我只是用 Ubuntu 来测试我的应用,所以我知道的很少。

【问题讨论】:

  • 你能把清单文件放在这里吗?
  • 已编辑问题以包含错误,发现此错误与 GTK 库有关,因此我重新编写了问题。
  • 可能是Can't open Eclipse in Ubuntu 12.04 - java.lang.UnsatisfiedLinkError: Could not load SWT library 的副本我还在Ubuntu bugtracker 中找到了一个条目。也许您可以在那里找到有用的解决方法或解决方案。
  • 我敢肯定,如果我没有把糟糕的 Ubuntu 搞砸到重新安装的地步,这会有所帮助。但是,自从我在 VMWare 下重新安装后,我的 SWT 应用程序现在可以正常工作了。

标签: java linux ubuntu jar swt


【解决方案1】:

这是我在 Ubuntu 13.10 x86_64 上修复该缺失库的方法:

java.lang.UnsatisfiedLinkError:无法加载 SWT 库。原因: /home/ywu/.eclipse/473605238/configuration/org.eclipse.osgi/bundles/361/1/.cp/libswt-pi-gtk-4236.so:libgtk-x11-2.0.so.0:无法打开共享目标文件:没有这样的文件或目录

ywu@ywu-HP-8100:~$ aptitude search libgtk2.0-0
    i   libgtk2.0-0                   - GTK+ graphical user interface library                                                         
    p   libgtk2.0-0:i386              - GTK+ graphical user interface library
ywu@ywu-HP-8100:~$ sudo apt-get install libgtk2.0-0:i386

【讨论】:

    【解决方案2】:

    在我的 64 位 Debian Wheezy/测试中,我通过这样做解决了它

    apt-get install ia32-libs-gtk
    

    (http://www.eclipse.org/forums/index.php/t/262868/)。如果您的系统不是 64 位系统,则此建议不适用。

    【讨论】:

    • 这不应该被关闭。应该添加到问题中的唯一细节是环境是 64 位的,并且 eclipse 需要 ia32 库
    • 如何在linux中做同样的事情?此命令不适用于 linux 64 位。
    • 找到了 64 位系统,它帮助了我。 ### sudo apt-get install libcanberra-gtk-module:i386(为 64 位系统运行 32 位库)### sudo apt-get install libgtk2.0-0:i386 libpangox-1.0-0:i386 libpangoxft-1.0 -0:i386 libidn11:i386 libglu1-mesa:i386 libxtst6:i386
    • 安装 libswt-gtk-3-java 修复了 Debian sid 中​​的问题。
    • ia32-libs-gtk 已于 2013 年 11 月 3 日从 Debian 中删除。拥有它的最后一个版本是squeeze。今天可以通过安装libswt-gtk-4-javalibswt-gtk-3-java来解决问题。
    【解决方案3】:

    使用最新的 Ubuntu (18.10),安装 libswt-gtk-3-java 修复它。 为此,请从终端输入以下命令: sudo apt install libswt-gtk-3-java

    对于最新版本,我建议以下链接: https://packages.ubuntu.com/search?keywords=swt-gtk

    【讨论】:

      【解决方案4】:

      对于更新的版本,如果它说找不到libgtk-3.so.0,那么您需要apt-get install 的明显包是libgtk-3-0。但是,在 Ubuntu Zesty (17.04) 上似乎没有这样的包,所以我需要切换到 Xenial (16.04)。 Artful and later 应该也可以。

      另外,如果没有这个,graphical Eclipse Installer 将无法工作。

      【讨论】:

        【解决方案5】:

        这在 i386/debian 和 docker 上对我有用:

        apt-get install libgtk2.0-0 
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-04-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-05-17
          • 2015-11-05
          相关资源
          最近更新 更多