无法在Windows 32位上加载SWT库

时间:2012-12-19 22:14:07

标签: windows exception dll swt 32-bit

我几乎完成了一个我在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文件?

提前致谢。

3 个答案:

答案 0 :(得分:6)

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

看起来好像你曾试图从linux SWT使用swt.jar。那不行。您需要为每个要支持的平台下载特定于平台的SWT包。

答案 1 :(得分:0)

在Windows上使用*.jar。转到Java Build Path。删除所有org.eclipse.swt.gtk.linux并将其替换为org.eclipse.swt.win32

答案 2 :(得分:0)

当我尝试执行&#34; Hello World SWT&#34;时,我遇到了类似的问题。 Eclipse 4.4.0中包含的教程。

在这种情况下,解决方案非常简单。我是从克雷格·威廉姆斯在http://www.eclipse.org/forums/index.php/t/261606/

中的回答中得到的

&#34;对我来说,解决方案位于标题为“配置Java项目”的教程中。进入项目Properties并选择Java Build Path,然后确保您处于之前添加SWT项目的Projects选项卡中。展开对SWT项目的引用。在哪里说本地图书馆位置我发现当我按照教程说它(无)。当我在教程前面添加它时,我点击了编辑并在我的工作区中找到了SWT项目。选择此项并单击“确定”。&#34;

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