【问题标题】:UnsatisfiedLinkError: Unable to load libraryUnsatisfiedLinkError:无法加载库
【发布时间】: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

涉及 Autohotkey.dll 操作的进程监视器屏幕截图:

【问题讨论】:

  • 这是一个错字吗(或在您的命令中)? "-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


【解决方案1】:

问题解决了。我没有安装新版本 ov vc_redist

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-04
    相关资源
    最近更新 更多