我是 Java JNI 的新手。我尝试了一个 helloCPP 程序,但遇到了问题。这是我的代码:
你好CPP.java;
public class helloCPP {
public native void hellocpp ();
static {
System.loadLibrary("helloCPP");
}
public static void main (String [] args) {
helloCPP hcpp=new helloCPP ();
hcpp.hellocpp ();
System.exit (0);
}
}
然后这是我制作 helloCPP.dll 的 hellocpp.cpp ;
#include <iostream>
#include "helloCPP.h"
using namespace std ;
JNIEXPORT void JNICALL Java_helloCPP_hellocpp. (JNIEnv *env, jobject obj) {
cout <<"hello java, I'm c++\n";
}
int main (){};
我成功构建了 helloCPP.dll。但是当我尝试运行 java helloCPP 时,我得到了这个错误:
Exception in thread "main"
java.lang.UnsatisfiedLinkError: helloCPP.hellocpp () V
at helloCPP.hellocpp(Native Method)
at helloCPP.main (helloCPP.java :8)
我在 Windows 8 x86 操作系统上做所有这些事情。这些是我写的命令:
javac helloCPP.java
javah helloCPP
g++ -c hellocpp.cpp
g++ -o helloCPP.dll hellocpp.cpp
这个产生了错误:
java HelloCPP
提前致谢。