我看到了很多关于这个主题的帖子。但没有帖子可以帮助我。
我尝试在java中调用名为hello
的本机方法。但我得到了UnsatisfiedLinkError。
Java类
public class A {
static {
System.load("C:\\Users\\thisara\\Documents\\NetBeansProjects\\Test2\\hello.dll");
}
private native void hello();
public static void main(String[] args) {
new A().hello();
}}
A.h DLL头文件
/* DO NOT EDIT THIS FILE - it is machine generated */
#include <jni.h>
/* Header for class A */
#ifndef _Included_A
#define _Included_A
#ifdef __cplusplus
extern "C" {
#endif
/*
* Class: A
* Method: hello
* Signature: ()V
*/
JNIEXPORT void JNICALL Java_A_hello(JNIEnv *, jobject);
#ifdef __cplusplus
}
#endif
#endif
C档案
#include <stdio.h>
#include <jni.h>
#include "A.h"
JNIEXPORT void JNICALL Java_A_hello(JNIEnv *env, jobject javaobj){
printf("Hello World: From C");
return;
}
当我运行代码时,我得到了
Exception in thread "main" java.lang.UnsatisfiedLinkError: A.hello()V
at A.hello(Native Method)
at A.main(A.java:22)
Java Result: 1
我该如何解决这个问题? 在此先感谢!