【问题标题】:Can't OPEN Eclipse in Ubuntu 12.04 - java.lang.UnsatisfiedLinkError: Could not load SWT library无法在 Ubuntu 12.04 中打开 Eclipse - java.lang.UnsatisfiedLinkError:无法加载 SWT 库
【发布时间】:2012-06-10 17:31:13
【问题描述】:

我新安装了 Ubuntu 12.04。我还安装了 Java 7。我尝试安装 eclipse-java-indigo-SR2-linux-gtk.tar.gz。我在 /home/ramprabhu 位置提取了这个文件。然后我尝试运行 eclipse 可执行文件。看到日志文件时出现错误。

我的日志文件:

 !SESSION 2012-06-10 22:47:35.959 -----------------------------------------------
eclipse.buildId=M20120208-0800
java.version=1.7.0_04
java.vendor=Oracle Corporation
BootLoader constants: OS=linux, ARCH=x86, WS=gtk, NL=en_US
Framework arguments:  -product org.eclipse.epp.package.java.product
Command-line arguments:  -os linux -ws gtk -arch x86 -product org.eclipse.epp.package.java.product

!ENTRY org.eclipse.osgi 4 0 2012-06-10 22:47:36.757
!MESSAGE Application error
!STACK 1
java.lang.UnsatisfiedLinkError: Could not load SWT library. Reasons: 
    /home/ramprabhu/eclipse/configuration/org.eclipse.osgi/bundles/247/1/.cp/libswt-pi-gtk-3740.so: libXtst.so.6: cannot open shared object file: No such file or directory
    no swt-pi-gtk in java.library.path
    /home/ramprabhu/.swt/lib/linux/x86/libswt-pi-gtk-3740.so: /home/ramprabhu/.swt/lib/linux/x86/libswt-pi-gtk-3740.so: wrong ELF class: ELFCLASS64 (Possible cause: architecture word width mismatch)
    Can't load library: /home/ramprabhu/.swt/lib/linux/x86/libswt-pi-gtk.so

    at org.eclipse.swt.internal.Library.loadLibrary(Library.java:285)
    at org.eclipse.swt.internal.Library.loadLibrary(Library.java:194)
    at org.eclipse.swt.internal.gtk.OS.<clinit>(OS.java:22)
    at org.eclipse.swt.internal.Converter.wcsToMbcs(Converter.java:63)
    at org.eclipse.swt.internal.Converter.wcsToMbcs(Converter.java:54)
    at org.eclipse.swt.widgets.Display.<clinit>(Display.java:132)
    at org.eclipse.ui.internal.Workbench.createDisplay(Workbench.java:695)
    at org.eclipse.ui.PlatformUI.createDisplay(PlatformUI.java:161)
    at org.eclipse.ui.internal.ide.application.IDEApplication.createDisplay(IDEApplication.java:153)
    at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:95)
    at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:344)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:601)
    at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:622)
    at org.eclipse.equinox.launcher.Main.basicRun(Main.java:577)
    at org.eclipse.equinox.launcher.Main.run(Main.java:1410)

我无法运行 Eclipse。如何解决这个问题并运行eclipse。

【问题讨论】:

    标签: eclipse swt ubuntu-12.04


    【解决方案1】:

    试试下面的命令

    • 64 位系统:ln -s /usr/lib/jni/libswt-* ~/.swt/lib/linux/x86_64/

    • 32 位系统:ln -s /usr/lib/jni/libswt-* ~/.swt/lib/linux/x86/

    【讨论】:

    • 遇到了同样的问题,对于我的 32 位系统,只需复制粘贴上述命令即可救我!谢谢!
    【解决方案2】:

    通过将libswt 文件复制到~/.swt/lib/linux/x86(or x86_64) 来解决

    对于 32 位:

    /bin/cp /usr/lib/jni/libswt-* ~/.swt/lib/linux/x86/
    

    对于 64 位:

    /bin/cp /usr/lib/jni/libswt-* ~/.swt/lib/linux/x86_64/
    

    【讨论】:

      【解决方案3】:

      我在尝试在 64 位 linux 下启动 Eclipse 的 32 位构建时遇到了这个错误。安装ia32-libs包后问题解决。

      【讨论】:

        【解决方案4】:

        在为 Blackberry 10 开发安装 QNX Momentic IDE(它基于 32 位 eclipse 发行版)后,我遇到了这个问题。我没有机会安装 ia32-libs 因为

        $ sudo apt-get install ia32-libs 阅读包裹清单...完成 构建依赖树
        读取状态信息...完成 包 ia32-libs 不可用,但被另一个包引用。 这可能意味着包丢失、已过时或 只能从其他来源获得 但是,以下软件包替换了它: lib32asound2 lib32z1 lib32ncurses5 lib32bz2-1.0

        E: 包 'ia32-libs' 没有安装候选者

        我在this post找到了解决方案

        sudo aptitude install libc6:i386 libstdc++6:i386 libatk1.0-0:i386 libc6:i386 libcairo2:i386 libexpat1:i386 libffi6:i386 libfontconfig1:i386 libfreetype6:i386 libgcc1:i386 libgdk-pixbuf2.0-0 :i386 libglib2.0-0:i386 libgtk2.0-0:i386 libpango1.0-0:i386 libpcre3:i386 libpixman-1-0:i386 libpng12-0:i386 libselinux1:i386 libstdc++6:i386 libx11-6 :I386 libxau6:I386 libxcb1:I386 libxcb-render0:I386 libxcb-shm0:I386 libxcomposite1:I386 libxcursor1:I386 libxdamage1:I386 libxdmcp6:I386 libxext6:I386 libxfixes3:I386 libxi6:I386 libxinerama1:I386 libxrandr2:I386 libxrender1:I386 libxtst6: i386 zlib1g:i386

        我相信这个解决方案也有助于简单的 32 位 eclipse

        【讨论】:

        • 谢谢。这行得通。还要检查错误日志以查看任何其他依赖项。
        【解决方案5】:

        您正在混合使用 64 位和 32 位。下载 64 位版本的 Eclipse 并使用 64 位版本的 Java 7。

        【讨论】:

        • 我如何理解eclipse是32位还是java是32位?我正在使用突触从 webupd8 ppa 安装 jdk7 并安装 eclipse。
        • 运行 java -version 将显示 32 位或 64 位模式。快速查找 Eclipse 是 32 位还是 64 位的方法是执行 find . -name 'org.eclipse.swt*.jar' 并查看它是否为 swt 返回 x86_64
        • 执行 java -version 说:java version "1.6.0_26" - Java(TM) SE Runtime Environment (build 1.6.0_26-b03-383-11M3720) - Java HotSpot(TM) Client VM (build 20.1-b02-383, mixed mode) 那么,这是 32 位还是 64 位?
        【解决方案6】:

        这是我解决问题的方法 aptitude search libswt-gtk

        然后sudo apt-get install没有安装的

        【讨论】:

        • 你是救生员!谢谢!
        【解决方案7】:

        在我的 64 位系统上遇到了同样的问题,ln 解决方案有效,神奇, 64位系统:ln -s /usr/lib/jni/libswt-* ~/.swt/lib/linux/x86_64/

        【讨论】:

          猜你喜欢
          • 2012-04-27
          • 2018-05-22
          • 1970-01-01
          • 1970-01-01
          • 2013-02-05
          • 1970-01-01
          • 2013-01-07
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多