我遇到以下错误的原因是什么:
线程“main”中的异常java.lang.UnsatisfiedLinkError:无法加载SWT库。
我在Ubuntu 9.04 Jaunty上使用Eclipse 3.5 SE。
如何解决此错误?
答案 0 :(得分:17)
我在32位系统上遇到了与Oracle Java 7和Eclipse相同的问题。
已安装 libswt-gtk-3.6-java
和libswt-gtk-3.6-jni
。 What helped:
cd ~/.swt/lib/linux/x86
ln -s /usr/lib/jni/* .
也许这可以重新配置Java备选方案或什么。
答案 1 :(得分:3)
我相信Mikolaj Lechtanski's workaround更优雅。
创建或编辑/etc/eclipse.ini
粘贴在里面:
-vmargs -Djava.library.path=/usr/lib/jni
出口
确保文件可读:
sudo chmod 755 /etc/eclipse.ini
答案 2 :(得分:2)
这意味着无法找到本地库
您有32位库,而您在64位计算机上运行,反之亦然
还要确保正确设置-Djava.library.path=
答案 3 :(得分:2)
您使用的是什么版本的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是否存在)。
答案 4 :(得分:1)
当通过“ssh -X”隧道在服务器上远程运行Eclipse时,我遇到了类似的问题。我在服务器上使用“sudo apt-get install libswt-gtk-3.6-java”解决了这个问题。
答案 5 :(得分:0)
在使用X11转发的无头服务器上启动一些GUI java应用程序时发生了这种情况,但只安装了openjdk-7-jre-headless
。安装完整的jre解决了这个问题:
apt-get install openjdk-7-jre
答案 6 :(得分:0)
我最终做了
cd ~/.swt/lib/macosx/x86_64
ln -s /usr/lib/java/* .
解决了这个问题。