java - JNA - 设置资源路径

标签 java dll jna

我正在尝试设置 JNA 以与我拥有的自定义 DLL 对话,但无济于事

它一直说它正在寻找lcoation/target/classes/中的资源路径

我想知道是否可以添加一个资源位置以获取我的 DLL?

我的代码如下

System.setProperty("jna.debug_load", "true");
System.setProperty("jna.debug_load.jna", "true");

System.setProperty("jna.platform.library.path", "C:\\Development\\dll\\");

Native.loadLibrary("customDLL", CustomDLL.class);

如果我手动将 dll 添加到文件夹/target/classes/,DLL 将按预期加载

我正在使用 Eclipse Luna 32 位 JDK 1.7.0_65 32 位 JNA 4.1.0

非常感谢任何帮助

谢谢 达米安

最佳答案

JNA 查找系统属性 jna.library.path 指定的位置,回退到 java.library.path 中的任何路径,否则(主要是根据环境中的 PATH 进行设置)。

您应该确保 Eclipse 将 DLL 复制到应用程序最终希望找到它的任何位置,并确保 Eclipse 在启动 JVM 时正确地将 jna.library.path 设置到该位置。

另请注意,任何依赖库必须在 PATH 上或与目标 DLL 位于同一目录中。

参见 JavaDoc for NativeLibrary有关 JNA 可以在何处加载您的 native 库的其他变体。

关于java - JNA - 设置资源路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25063614/

相关文章:

Java Swing 在运行时添加/删除 jButtons

java - 我应该在下面的给定代码中将什么作为应用程序上下文(Android 应用程序)

c# - COM dll 的有效 .cs 文件

c++ - 从 R 调用 C++ 函数时出错 - 库加载,但函数不在表中

java - JNA 使用 LPCWSTR 参数调用 C++ 函数

java - 包装 C 头文件以将其与 dll 和 JNA(erator) 一起使用

java - 如何设置 jFormattedTextField 使其只允许 2 个数字?

java - 用一个循环写一个快速排序

c++ - 在 CPP 中使用 DLL

java - C++ 二进制到 Java 得到 "java.lang.Error: Invalid memory access"