【发布时间】:2014-10-22 12:14:37
【问题描述】:
我在用 Java 加载 c++ dll 时遇到问题。当我使用下面的 Java 代码(loadLibrary)时,我得到了这个错误:
Exception in thread "main" java.lang.UnsatisfiedLinkError: TestJNI.Add(II)V
我该如何解决这个问题?
public class TestJNI {
public native void Add(int a,int b);
static {
System.loadLibrary("dllclass");
}
public static void main(String args[]) {
new TestJNI().Add(1,2);
}
}
除了头文件,我没有c中的源代码,它使用这个代码
int APIENTRY(dllexport) add(int a, int b);
如果您对C语言或java代码或示例代码有任何建议,请介绍。
【问题讨论】:
-
至少你需要告诉我们你的
Add函数是如何在C++中定义的。 -
你确定函数是从dll导出的吗?你确定 dll 在 PATH 上吗?
-
您确定您的 Add 函数具有 JNI 定义的正确命名吗?
-
我将 dll 放在我的 java 项目的 bin 路径中,我在 java 中使用相同的函数名,但我不确定我使用的是相同的类名。
-
我使用了 Add 但现在我更改了 add,我有这个问题,它不能解决我的问题。