Подтвердить что ты не робот

Jni.h: нет такого файла или каталога

Я использую Code:: Blocks в окнах.

Я создал проект dll, пытаясь получить некоторую практику JNI.

В моем файле .h, сгенерированном javah, там #include jni.h, но когда я пытаюсь его скомпилировать, он продолжает говорить jni.h: нет такого файла или каталога.

Я думаю, что это имеет какое-то отношение к classpath, но я не знаю, что это такое! Возможно, он установил, что мне нужно изменить в Code:: Blocks

Может кто-нибудь, пожалуйста, помогите мне исправить это? большое спасибо

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

#ifndef _Included_Vector3D
#define _Included_Vector3D
#ifdef __cplusplus
extern "C" {
#endif
/*
 * Class:     Vector3D
 * Method:    magnitude
 * Signature: ()D
 */
JNIEXPORT jdouble JNICALL Java_Vector3D_magnitude
  (JNIEnv *, jobject);

/*
  * Class:     Vector3D
 * Method:    mult
 * Signature: (LVector3D;I)LVector3D;
 */
JNIEXPORT jobject JNICALL Java_Vector3D_mult
  (JNIEnv *, jobject, jobject, jint);

/*
 * Class:     Vector3D
 * Method:    equals
 * Signature: (LVector3D;)Z
 */
JNIEXPORT jboolean JNICALL Java_Vector3D_equals
  (JNIEnv *, jobject, jobject);

/*
 * Class:     Vector3D
 * Method:    dotProduct
 * Signature: (LVector3D;LVector3D;)D
 */
JNIEXPORT jdouble JNICALL Java_Vector3D_dotProduct
  (JNIEnv *, jclass, jobject, jobject);

/*
 * Class:     Vector3D
 * Method:    makeNormalized
 * Signature: (LVector3D;)LVector3D;
 */
JNIEXPORT jobject JNICALL Java_Vector3D_makeNormalized
  (JNIEnv *, jclass, jobject);

/*
 * Class:     Vector3D
 * Method:    crossProduct
 * Signature: (LVector3D;LVector3D;)LVector3D;
 */
JNIEXPORT jobject JNICALL Java_Vector3D_crossProduct
  (JNIEnv *, jclass, jobject, jobject);

#ifdef __cplusplus
}
#endif
#endif

EDIT:
Таким образом, я сделал Настройки → Компилятор и отладчик → Каталоги поиска → и добавил в компилятор "$ (JAVA_HOME)\include" и "$ (JAVA_HOME)\include\win32", и он смог его найти!

4b9b3361

Ответ 1

Вы должны добавить путь JDK к пути include, чтобы компилятор знал местоположение файла.

Окна:

/I "$(JAVA_HOME)\include" /I "$(JAVA_HOME)\include\win32"

Linux:

-I"${JAVA_HOME}/include" -I"${JAVA_HOME}/include/linux"

Mac:

-I"${JAVA_HOME}/include" -I"${JAVA_HOME}/include/darwin"