【问题标题】:How to load dependent dlls in Java?如何在 Java 中加载依赖的 dll?
【发布时间】:2023-04-05 10:58:01
【问题描述】:

我有两个 dll,C:\foo\x.dll 和 C:\bar\y.dll,其中 x.dll 依赖于 y.dll(即 x 中的函数实现将调用 y 中的函数)。

在 Java 应用程序中,当我使用 JNA 加载 x.dll 时,我需要进行什么设置以确保不会收到 UnsatisfiedLinkException?

我目前正在将jna.library.path 设置为C:\foo,但似乎还不够。在java.library.path 中同时包含C:\foo 和C:\bar 也无济于事。

【问题讨论】:

  • 您可以尝试拨打System.loadLibrary("y")
  • 您根本不需要加载它们。依赖库只需要在 PATH 上,而不是 java.library.path。

标签: java dll native jna


【解决方案1】:

在调用 JNA 加载主库之前,您通常可以调用 System.load("/name.dll") 并提供依赖库的路径。

如果库位于java.library.path 上并且符合预期的命名约定,System.loadLibrary("name") 将起作用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-05-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-16
    • 1970-01-01
    • 2020-04-10
    相关资源
    最近更新 更多