Java c+中的JNI未满足链接错误+;动态链接库
我使用JNI调用了一个简单的hello world函数Java c+中的JNI未满足链接错误+;动态链接库,java,java-native-interface,Java,Java Native Interface,我使用JNI调用了一个简单的hello world函数 JAVA文件 public class HelloJNI { static { System.loadLibrary("hello"); } private native void sayHello(); public static void main(String[] args) { new HelloJNI().sayHello(); } } 我在同一目录中有h
JAVA文件
public class HelloJNI {
static {
System.loadLibrary("hello");
}
private native void sayHello();
public static void main(String[] args) {
new HelloJNI().sayHello();
}
}
我在同一目录中有hello.dll
文件
我甚至将目录添加到PATH
变量中
仍然不起作用
提前谢谢
错误:
线程“main”java.lang.UnsatisfiedLinkError中出现异常:HelloJNI.sayHello()V
在HelloJNI.sayHello(本机方法)
在HelloJNI.main(HelloJNI.java:9)
C++文件:
#include "jni.h"
#include <iostream>
#include "HelloJNI.h"
using namespace std;
// Implementation of native method sayHello() of HelloJNI class
JNIEXPORT void JNICALL Java_HelloJNI_sayHello(JNIEnv *env, jobject thisObj){
cout << "Hello World from C++!" << endl;
return;
}
您能提供完整的堆栈跟踪吗?:)我已经编辑了问题和C代码?还有。h文件?我也添加了这些文件@EJPC是否可以在路径变量的目录中找到另一个“hello.dll”,而不是您想要的?
/* DO NOT EDIT THIS FILE - it is machine generated */
#include "jni.h"
/* Header for class HelloJNI */
#ifndef _Included_HelloJNI
#define _Included_HelloJNI
#ifdef __cplusplus
extern "C" {
#endif
/*
* Class: HelloJNI
* Method: sayHello
* Signature: ()V
*/
JNIEXPORT void JNICALL Java_HelloJNI_sayHello
(JNIEnv *, jobject);
#ifdef __cplusplus
}
#endif
#endif