关于java中JNA调用c++ dll文件失败问题
现在目前使用的是 4.0的jar和3.5.1的 两个版本都不可以。
问题描述:
我把c++写好的dll文件放到 当前项目下,然后使用一下代码调用。
package net.cc.tools; import com.sun.jna.Library; import com.sun.jna.Native; public class addTestServer { public interface addTest extends Library { addTest INSTANCE = (addTest) Native.loadLibrary("addTest.dll", addTest.class); int add(Integer a, Integer b); } public static void main(String[] args) { addTestServer.addTest.INSTANCE.add(Integer.valueOf(1), Integer.valueOf(2)); } }
现在每次执行 都是报错。。
错误描述:
Exception in thread "main" java.lang.UnsatisfiedLinkError: Unable to load library 'addTest.dll': dlopen(libaddTest.dll.dylib, 9): image not found at com.sun.jna.NativeLibrary.loadLibrary(NativeLibrary.java:194) at com.sun.jna.NativeLibrary.getInstance(NativeLibrary.java:283) at com.sun.jna.Library$Handler.<init>(Library.java:142) at com.sun.jna.Native.loadLibrary(Native.java:368) at com.sun.jna.Native.loadLibrary(Native.java:353) at net.cc.tools.addTestServer$addTest.<clinit>(addTestServer.java:10) at net.cc.tools.addTestServer.main(addTestServer.java:18)
实在是看不出来,,小伙伴 看看是什么情况?
谢谢了。。。。
是否dll中使用到外部资源呢?要用到两个jar包,jna.jar和jna-platform.jar,都加进去了吗? loadlibrary的时候用绝对路径试试,明显库load失败嘛<divclass="ref">
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。