【发布时间】:2010-06-06 02:24:43
【问题描述】:
我遇到以下错误的原因是什么:
线程“主”java.lang.UnsatisfiedLinkError 中的异常:无法加载 SWT 库。
我在 Ubuntu 9.04 Jaunty 上使用 Eclipse 3.5 SE。
我该如何解决这个错误?
【问题讨论】:
我遇到以下错误的原因是什么:
线程“主”java.lang.UnsatisfiedLinkError 中的异常:无法加载 SWT 库。
我在 Ubuntu 9.04 Jaunty 上使用 Eclipse 3.5 SE。
我该如何解决这个错误?
【问题讨论】:
我在 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 替代品或其他方式来完成。
【讨论】:
我相信Mikolaj Lechtanski's workaround 更优雅。
创建或编辑 /etc/eclipse.ini
粘贴在里面:
-vmargs -Djava.library.path=/usr/lib/jni退出
确保文件可读:
sudo chmod 755 /etc/eclipse.ini
【讨论】:
这意味着找不到本机库。
要么您拥有 32 位库,并且在 64 位机器上运行,反之亦然。
还要确保您正确设置了-Djava.library.path=
【讨论】:
您使用的是什么版本的 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 是否是)。
【讨论】:
通过“ssh -X”隧道在服务器上远程运行 Eclipse 时,我遇到了类似的问题。我在服务器上使用“sudo apt-get install libswt-gtk-3.6-java”解决了它。
【讨论】:
在使用 X11 转发的无头服务器上启动一些 GUI Java 应用程序时,我只安装了 openjdk-7-jre-headless。安装完整的 jre 解决了这个问题:
apt-get install openjdk-7-jre
【讨论】:
我最终做了
cd ~/.swt/lib/macosx/x86_64
ln -s /usr/lib/java/* .
解决了这个问题。
【讨论】: