gpt4 book ai didi

java - JNI 不满意链接错误

转载 作者:行者123 更新时间:2023-11-30 17:20:34 25 4
gpt4 key购买 nike

所以我是 JNI 新手,我正在遵循一个简单的 hello 词示例,但我不断收到错误 UnsatisfiedLinkError。我究竟做错了什么?这是我的 .h 文件:

/* DO NOT EDIT THIS FILE - it is machine generated */
#include <jni.h>
/* Header for class JNITEST_jnihellonative */

#ifndef _Included_JNITEST_jnihellonative
#define _Included_JNITEST_jnihellonative
#ifdef __cplusplus
extern "C" {
#endif
/*
* Class: JNITEST_jnihellonative
* Method: hellofromc
* Signature: ()V
*/
JNIEXPORT void JNICALL Java_JNITEST_jnihellonative_hellofromc(JNIEnv *,jobject);

#ifdef __cplusplus
}
#endif
#endif

.c 文件

#include <jni.h>
#include<stdio.h>
#include<windows.h>
#include "jnihellonative.h"

JNIEXPORT void JNICALL
Java_JNITESTS_jnihellonative_hellofromc(JNIEnv *env, jobject obj){
printf("Hello World");
return;
}

java主类

package JNITEST;


public class Jnihello {


public static void main(String[] args) {
jnihellonative jniprint = new jnihellonative();
jniprint.hellofromc();
}

}

java类

package JNITEST;


public class jnihellonative {

public native void hellofromc();

static{
System.load("C:\\Users\\Kevin\\Documents\\NetBeansProjects\\JniHelloTest.dll");
}
}

我不断收到此错误

Exception in thread "main" java.lang.UnsatisfiedLinkError: JNITEST.jnihellonative.hellofromc()V
at JNITEST.jnihellonative.hellofromc(Native Method)
at JNITEST.Jnihello.main(Jnihello.java:19)
Java Result: 1
BUILD SUCCESSFUL (total time: 1 second)

我尝试使用 System.load() 和 System.loadLibrary() 但遇到同样的错误。

最佳答案

自从生成 .h 文件并编写 .c 文件以来,您已经更改了类的名称。 .h 文件具有 jnihellonative,您的 Java 代码具有 Jnihello

I have tried using System.load() and System.loadLibrary()

无关紧要。您不会从其中任何一个中获得异常,而是在调用 native 方法时获得异常。

关于java - JNI 不满意链接错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28531495/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com