我正在尝试设置 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/