首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法加载SWT库"UnsatisfiedLinkError: no swt 4233“

无法加载SWT库"UnsatisfiedLinkError: no swt 4233“
EN

Ask Ubuntu用户
提问于 2012-10-13 09:28:32
回答 2查看 27.7K关注 0票数 5

我是一个Java新手,他通过eclipse使用SWT为GUI编写了一个简单的Java程序。代码正常工作,程序能够在eclipse中运行,所以我编译了它,并使它成为一个可运行的jar文件,以便可以在eclipse之外运行。我试着用终端运行它,结果出现了这个错误。

代码语言:javascript
复制
Exception in thread "main" java.lang.UnsatisfiedLinkError: Could not load SWT library. Reasons: 
no swt-gtk-4233 in java.library.path
no swt-gtk in java.library.path
Can't load library: /home/abody/.swt/lib/linux/x86_64/libswt-gtk-4233.so
Can't load library: /home/abody/.swt/lib/linux/x86_64/libswt-gtk.so

at org.eclipse.swt.internal.Library.loadLibrary(Library.java:331)
at org.eclipse.swt.internal.Library.loadLibrary(Library.java:240)
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:133)
at Class1.main(Class1.java:12)

所以现在它似乎找不到libswt-gtk-4233.so和另一个文件。但是,当我查看.swt文件夹时,我有一个libswt-gtk-3740.so而不是4233

所以它试图找到一个更最新的文件。那么,这意味着我应该更新SWT吗?到底怎么回事?

EN

回答 2

Ask Ubuntu用户

发布于 2012-11-21 02:18:47

您需要创建一个指向swt的符号链接,以便文件位于/usr/lib/jni目录中。我在这个网站上找到了一个解决方案:月食无法加载SWT库

使用以下命令:

代码语言:javascript
复制
ln -s /usr/lib/jni/libswt-* ~/.swt/lib/linux/x86_64/
票数 5
EN

Ask Ubuntu用户

发布于 2014-08-29 08:08:38

所以现在它似乎找不到libswt-gtk-4233.so和另一个文件。然而,当我查看.swt文件夹时,我有一个libswt-GTK-3740,所以不是4233。

插件

本身就有那些库.

右击您的项目:

->属性->构建路径

在Java构建路径窗口上,项目的选项卡包含org.eclipse.swt.%GUI%.%PLATFORM%

(您导入的项目)

单击以展开。

编辑本机库位置。

选择工作区,然后整个项目org.eclipse.swt.%GUI%.%PLATFOM%

按Ok,你就完了!

关于:

..so我编译了它,并使它成为一个可运行的jar文件,这样它就可以在eclipse之外运行。我试着用终端运行它,结果出现了这个错误。

我不知道你是如何在Eclipse中运行而不是在终端机运行的。所以我以为你是想在另一个平台上做。对于那些是新的(如我),请阅读wiky:标准Widget工具包

调用SWT的..Programs是可移植的,但是工具箱的实现,尽管部分是用Java编写的,但对于每个平台来说都是独一无二的.

必须将SWT移植到每个需要支持的新GUI库中。与Swing和AWT不同,SWT并不是在每个Java支持的平台上都可用的,因为SWT不是Java版本的一部分.

由于每个平台的SWT实现是不同的,所以必须与每个应用程序一起分发特定于平台的SWT库(JAR文件)。

因此,如果要将项目导出到特定平台,必须在该平台上打开IDE,重复导入插件,但这一次,从-build路径中删除与项目无关的项目(而不是删除项目)。现在,您可以为特定的平台进行编译。

如果您从一个平台切换到另一个平台,在开发项目时,只需编辑构建路径,删除那里不相关的项目即可。

票数 0
EN
页面原文内容由Ask Ubuntu提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://askubuntu.com/questions/199622

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档