JNI UnsatisfiedLinkError в c ++ dll - PullRequest
0 голосов
/ 11 июня 2018

Я использовал JNI для вызова простой функции hello world.

JAVA File

public class HelloJNI {
    static {
        System.loadLibrary("hello");
    }
    private native void sayHello();

    public static void main(String[] args) {
        new HelloJNI().sayHello();
    }
}

У меня есть файл hello.dll в том же каталоге.

Я даже добавил каталог в переменную PATH.

Все еще не работает.

Заранее спасибо.

Ошибка:

Exception in thread "main" java.lang.UnsatisfiedLinkError: HelloJNI.sayHello()V at HelloJNI.sayHello(Native Method) at 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;
}

Файл заголовка:

/* 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...