9

我几乎完成了一个在 Linux 上开发的 Java 项目。现在我需要在 Windows 上构建和测试它。所以我在 Windows XP 32 位上安装了 Eclipse,并导入了我的项目。项目的所有依赖项都在 lib 文件夹中的 jar 文件中,在 Linux 上一切正常,但在 Windows XP 上出现以下错误:

Exception in thread "main" java.lang.UnsatisfiedLinkError: Could not load SWT library. Reasons: 
    no swt-pi-gtk-4234 in java.library.path
    no swt-pi-gtk in java.library.path
    Can't load library: C:\Documents and Settings\firzen\.swt\lib\win32\x86\swt-pi-gtk-4234.dll
    Can't load library: C:\Documents and Settings\firzen\.swt\lib\win32\x86\swt-pi-gtk.dll

    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.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:133)
    at gui.Frontend.<init>(Frontend.java:51)
    at Fighter.main(Fighter.java:18)

我已经搜索了这些 DLL,但我没有找到它们。我在哪里可以下载这些 DLL 文件?

提前致谢。

4

3 回答 3

7

正确的 DLL 文件位于您特定平台的 swt.jar 中。您需要从http://download.eclipse.org/eclipse/downloads/drops4/R-4.2.1下载适用于 Windows(不是 x86_64)的 SWT,例如“swt-4.2.1-win32-win32-x86.zip” -201209141800/#SWT

看起来您好像尝试过使用来自 linux SWT 的 swt.jar。那是行不通的。您需要为要支持的每个平台下载特定于平台的 SWT 包。

于 2012-12-19T23:00:28.363 回答
0

当我尝试执行 Eclipse 4.4.0 中包含的“Hello World SWT”教程时遇到了类似的问题。

在这种情况下,解决方案非常简单。我从 Craig Williams 在http://www.eclipse.org/forums/index.php/t/261606/的回答中得到它

“对我来说,解决方案位于标题为‘配置 Java 项目’的教程步骤中。进入项目属性并选择 Java 构建路径,然后确保您位于之前添加 SWT 项目的项目选项卡中。展开参考到 SWT 项目。在哪里说 Native library location 我发现当我按照教程进行操作时它说(无)。当我在教程前面添加它时,我单击编辑并在我的工作区中找到了 SWT 项目。选择它并单击好的。”

希望它可以帮助到此页面的其他人。

于 2014-08-02T02:47:14.640 回答
0

使用*.jar打开的窗口。转到 Java 构建路径。删除所有org.eclipse.swt.gtk.linux并替换为org.eclipse.swt.win32

于 2013-06-24T13:13:39.867 回答