我在 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 文件?
提前致谢。
针对您的特定平台,正确的 DLL 文件位于 swt.jar 内。您需要下载适用于 Windows(不是 x86_64)的 SWT,例如“swt-4.2.1-win32-win32-x86.zip”来自 http://download.eclipse.org/eclipse/downloads/drops4/R-4.2.1-201209141800/#SWT.
看起来您似乎已尝试使用 linux SWT 中的 swt.jar。那是行不通的。您需要为您想要支持的每个平台下载特定于平台的 SWT 包。
在 Windows 上使用
*.jar
。转到 Java 构建路径。删除所有 org.eclipse.swt.gtk.linux
并将其替换为 org.eclipse.swt.win32
当我尝试执行 Eclipse 4.4.0 中包含的“Hello World SWT”教程时,我遇到了类似的问题。
在这种情况下,解决方案非常简单。我从 Craig Williams 的回答中得到了 http://www.eclipse.org/forums/index.php/t/261606/
“对我来说,解决方案位于标题为“配置 Java 项目”的教程步骤中。进入项目属性并选择 Java 构建路径,然后确保您位于之前添加 SWT 项目的“项目”选项卡中。展开引用 SWT 项目。在哪里显示本机库位置,当我按照教程进行操作时,我发现它显示为(无),当我在教程前面添加它时,显然在我的工作区中找到了 SWT 项目。点击好的。”
希望它可以帮助其他访问此页面的人。
对我来说,环境(应用程序)似乎存在一些兼容性问题。我必须将 Eclipse 4.33.0 降级到 4.30.0,它成功了 - 加载 Eclipse 时不再出现错误。