【发布时间】:2020-06-10 10:02:51
【问题描述】:
我创建了一个使用 autohotkey.dll 库的 jar 文件。 Jar 在我的主电脑和笔记本电脑上运行顺畅,但现在我尝试在新安装 Windows 10 的电脑上使用它,但出现此错误:
线程“主”java.lang.UnsatisfiedLinkError 中的异常:无法 加载库“AutoHotkey”:无法获取 InputStream win32-x86-64/AutoHotkey.dll 在 com.sun.jna.NativeLibrary.loadLibrary(NativeLibrary.java:271) 在 com.sun.jna.NativeLibrary.getInstance(NativeLibrary.java:398) 在 com.sun.jna.Library$Handler.(Library.java:147) 在 com.sun.jna.Native.loadLibrary(Native.java:412) 在 com.sun.jna.Native.loadLibrary(Native.java:391) 在 DllController.(DllController.java:26) 在 UI.main(UI.java:113)
DLL 文件与 jar 文件位于同一文件夹中。
我尝试了以下方法:
- 同时使用 32 位和 64 位版本的 JRE
- 已安装 Visual c++ 可再发行包(32 位和 64 位)
- 还尝试通过以下命令运行 jar:
java "-Djava.library.path=C:\runnablegui\new" -jar C:\runnablegui\new\as.jar
【问题讨论】:
-
这是一个错字吗(或在您的命令中)?
"-Djava.library.path= C:\runnablegui"应该是"-Djava.library.path=C:\runnablegui"- 另外,请仔细检查工作机器上的文件夹结构(似乎 dll 应该在子文件夹中)。 -
是的,有一个错字,但没有任何效果。我试图将 dll 移动到工作电脑上的子文件夹,但它也开始给出同样的错误。
-
使用 Sysinternals Process Monitor 检查 Java 进程实际搜索 dll 的路径(过滤 Java.exe 进程和仅文件操作)。
-
我添加了来自进程监视器的屏幕截图。如果我理解正确,则从 C:\runnablegui 读取 dll
标签: java windows exception native unsatisfiedlinkerror