本文翻译自:Eclipse cannot load SWT libraries
Every time I try to open Eclipse in Ubuntu 12.04 I get an Unsatisfied Link Error and it will not open. 每次我尝试在Ubuntu 12.04中打开Eclipse时,我都会收到一个不满意的链接错误,它将无法打开。 I have recently installed the java JDK and Android SDK, could this be the problem? 我最近安装了java JDK和Android SDK,这可能是问题吗? I followed this tutorial . 我按照本教程 。
Here is the log info: 这是日志信息:
!SESSION 2012-04-15 21:05:46.902 -----------------------------------------------
eclipse.buildId=I20110613-1736
java.version=1.7.0
java.vendor=Oracle Corporation
BootLoader constants: OS=linux, ARCH=x86_64, WS=gtk, NL=en_GB
Command-line arguments: -os linux -ws gtk -arch x86_64
!ENTRY org.eclipse.osgi 4 0 2012-04-15 21:05:47.885
!MESSAGE Application error
!STACK 1
java.lang.UnsatisfiedLinkError: Could not load SWT library. Reasons:
no swt-gtk-3740 in java.library.path
no swt-gtk in java.library.path
Can't load library: /home/tom/.swt/lib/linux/x86_64/libswt-gtk-3740.so
Can't load library: /home/tom/.swt/lib/linux/x86_64/libswt-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.C.<clinit>(C.java:21)
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)
at org.eclipse.equinox.launcher.Main.main(Main.java:1386)
I have tried uninstalling and reinstalling, and removing the ~/.eclipse
directory but it still doesn't work 我尝试卸载并重新安装,并删除~/.eclipse
目录,但它仍然无法正常工作
#1楼
参考:https://stackoom.com/question/geYn/Eclipse无法加载SWT库
#2楼
Can't load library: /home/tom/.swt/lib/linux/x86_64/libswt-gtk-3740.so Can't load library: /home/tom/.swt/lib/linux/x86_64/libswt-gtk.so
looks like the libraries should be at .swt/lib/linux/x86_64/ if there are not there you can try this command: 看起来库应该在.swt / lib / linux / x86_64 /如果没有,你可以尝试这个命令:
locate libswt-gtk.so
this should find the libraries copy the entire directory to /home/tom/.swt/lib/linux/x86_64 这应该找到库将整个目录复制到/home/tom/.swt/lib/linux/x86_64
#3楼
SOLVED: 解决了:
Because I had installed the Oracle Java 7 it had changed the default Java to Oracle Java 7, however it needed to be the Open JDK. 因为我已经安装了Oracle Java 7,所以它已将默认Java更改为Oracle Java 7,但它必须是Open JDK。
To fix, open up terminal and type 要修复,打开终端并输入
sudo update-alternatives --config java
This brings up a list of the different types of Java. 这将显示不同类型的Java列表。 Simply select the Open JDK. 只需选择Open JDK即可。
#4楼
on my Ubuntu 12.04 32 bit . 在我的Ubuntu 12.04 32位上 。 I edit the command to: 我编辑命令:
ln -s /usr/lib/jni/libswt-* ~/.swt/lib/linux/x86/
And on Ubuntu 12.04 64 bit try: 并在Ubuntu 12.04 64位尝试:
ln -s /usr/lib/jni/libswt-* ~/.swt/lib/linux/x86_64/
#5楼
If you start eclipse using oracle java, then eclipse might fail in finding native libraries like SWT or SVN libraries. 如果你使用oracle java启动eclipse,那么eclipse可能无法找到像SWT或SVN库这样的本地库。 The SWT-JNI libraries are located in /usr/lib/jni/ and the SVN-JNI libraries are located in /usr/lib/x86_64-linux-gnu/jni/. SWT-JNI库位于/ usr / lib / jni /中,SVN-JNI库位于/ usr / lib / x86_64-linux-gnu / jni /中。
Instead of starting eclipse with the command 而不是用命令启动eclipse
eclipse
you can use the command 你可以使用该命令
env LD_LIBRARY_PATH=/usr/lib/jni/:/usr/lib/x86_64-linux-gnu/jni/:$LD_LIBRARY_PATH eclipse
to pass the environment variable LD_LIBRARY_PATH to eclipse. 将环境变量LD_LIBRARY_PATH传递给eclipse。 Eclipse will find the native libraries and will run properly. Eclipse将找到本机库并将正常运行。
#6楼
Please make sure that your home partition is mounted with executable permissions. 请确保您的主分区已安装可执行权限。 That is the default, but if you happen to mount it without exec option, you will get this error. 这是默认设置,但是如果您碰巧在没有exec选项的情况下挂载它,则会出现此错误。