【发布时间】:2011-11-16 18:42:49
【问题描述】:
我在 Internet 上找不到 SWT 尝试写入 dll 文件的位置。我有一台 jar 无法运行的计算机,只是因为 SWT 无法编写 DLL。
更新 1
java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at com.sun.javaws.Launcher.executeApplication(Unknown Source)
at com.sun.javaws.Launcher.executeMainClass(Unknown Source)
at com.sun.javaws.Launcher.doLaunchApp(Unknown Source)
at com.sun.javaws.Launcher.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.UnsatisfiedLinkError: Could not load SWT library. Reasons:
no swt-win32-3738 in java.library.path
no swt-win32 in java.library.path
Can't load library: \\ubz01fst\Students\User2010\Com\xxx\swt-win32-3738.dll
Can't load library: \\ubz01fst\Students\User2010\Com\xxx\swt-win32.dll
at org.eclipse.swt.internal.Library.loadLibrary(Unknown Source)
at org.eclipse.swt.internal.Library.loadLibrary(Unknown Source)
at org.eclipse.swt.internal.C.<clinit>(Unknown Source)
at org.eclipse.swt.widgets.Display.<clinit>(Unknown Source)
at install.Main.main(Main.java:162)
【问题讨论】:
-
SWT 不应该编写 DLL。
-
AAH 在您自己的构建环境中使用 eclipse...好吧,如果您仔细阅读了您提供给我的非常链接“运行构建命令(对于 UNIX 和 Linux 平台,sh build.sh,build.bat对于 Windows)。这将在 当前目录中创建适当的库文件。"
-
不,等等:我有 2 台机器。在第一个 jar 工作正常,运行时在 c:\Users\myuser\.swt\win\x86 下创建文件 dll。第二次它给了我我在更新 1 中写的异常。
-
你的 jar 文件清单中有 DLL 吗?通常在带有 jar 的 lib/ 中。
-
@hurtledown SWT 正在通过 JNI 调用 DLL。这是一个简单的本地路径问题。您的错误消息向您显示了预期的内容以及找不到它们的位置。解压缩 jar 并确保所有内容都包含在内。在单独的注释中,SWT 是与 Swing 相对的本机实现(最终以本机结束,但它是 Java 发行版的一部分)。它通常是列出的 ./lib/*DLLs 的路径问题。 '\\ubz01fst\Students\User2010\Com\xxx\swt-win32.dll' 是一个致命的赠品。