2012-06-10 99 views
11

我已經新安裝了Ubuntu 12.04。另外我安裝了Java 7.我嘗試安裝eclipse-java-indigo-SR2-linux-gtk.tar.gz。我在/ home/ramprabhu位置提取了這個文件。然後我嘗試運行eclipse可執行文件。我看到日誌文件時出錯。無法在Ubuntu 12.04中打開Eclipse - java.lang.UnsatisfiedLinkError:無法加載SWT庫

我的日誌文件:

!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。

回答

3

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

+0

我如何理解日食是32位還是java是32位?我使用synaptic從webupd8 ppa安裝jdk7並安裝eclipse。 –

+1

運行'java -version'會顯示32位或64位模式。查找Eclipse是32位還是64位的快速方法是查找。 -name'org.eclipse.swt * .jar',看看它是否返回x86_64執行'java -version'說: 'java version「1.6版本的swt –

+1

。0_26「 - Java(TM)SE運行時環境(build 1.6.0_26-b03-383-11M3720) - Java HotSpot(TM)客戶端VM(build 20.1-b02-383,混合模式)'那麼,這是32位還是64位? –

55

用下面的命令嘗試

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

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

+0

工作就像一個魅力-Thnx –

+0

有同樣的問題,併爲我的32位系統只是一個複製粘貼上述命令救了我!謝謝! – Vagelism

+0

也爲我工作。謝謝 – Kanishka

7

工作了通過複製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/ 
+0

謝謝。它的工作:) – Stranger

5

我碰到這個錯誤就嘗試在64位的Linux啓動Eclipse的32位時所建。安裝ia32-libs包後問題解決了。

0

與我的64位系統有同樣的問題,ln是解決方案,magic, 64位系統:ln -s/usr/lib/jni/libswt- *〜/ .swt/lib/linux/x86_64/

4

我在爲黑莓10開發安裝QNX Momentic IDE(基於32位eclipse發行版)後面臨這個問題。我還沒有機會安裝IA32-庫因爲

$ sudo apt-get install ia32-libs Reading package lists... Done Building dependency tree
Reading state information... Done Package ia32-libs is not available, but is referred to by another package. This may mean that the package is missing, has been obsoleted, or is only available from another source However the following packages replace it: lib32asound2 lib32z1 lib32ncurses5 lib32bz2-1.0

E: Package 'ia32-libs' has no installation candidate

我找到了解決方案,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還

+0

謝謝。並檢查錯誤日誌以查看任何其他依賴關係 – boring

3

這裏幫助是我如何解決問題 aptitude search libswt-gtk

然後sudo apt-get install未安裝的那些 enter image description here

+0

您是一名拯救生命的人!謝謝! – 11101101b

相關問題