关于java中JNA调用c++ dll文件失败问题

小沫 发布于 2013/10/28 18:25
阅读 2K+
收藏 2
JNA

关于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)

实在是看不出来,,小伙伴 看看是什么情况?

谢谢了。。。。

加载中
0
vvtf
vvtf
是否dll中使用到外部资源呢?
0
GotaX
GotaX
要用到两个jar包, jna.jar 和 jna-platform.jar, 都加进去了吗? 
0
Brantz
Brantz
loadlibrary 的时候用绝对路径试试,明显库load失败嘛
0
小沫
小沫

引用来自“rouyh”的答案

是否dll中使用到外部资源呢?
没有引用外部资源
0
小沫
小沫

引用来自“GotaX”的答案

要用到两个jar包, jna.jar 和 jna-platform.jar, 都加进去了吗? 
已经加了 但是还是不行。
0
小沫
小沫

引用来自“Brantz”的答案

loadlibrary 的时候用绝对路径试试,明显库load失败嘛
绝对路径也不行 也试验了。。
0
汉唐
汉唐
小伙伴,是你文件位置不对吧。放到你代码同级目录下试试,然后放classpath,然后用绝对路径
0
情天大圣
情天大圣
要带.dll后缀么?
0
陈能涛
陈能涛
image not found
0
yuyuyuyu
yuyuyuyu
放的位置不对
返回顶部
顶部