java - jni.h: no existe tal archivo o directorio
codeblocks (1)
Estoy usando Code :: Blocks en Windows.
Creé un proyecto dll tratando de obtener algo de práctica JNI.
En mi archivo .h generado por javah, hay #include jni.h, pero cuando intento compilarlo, sigue diciendo jni.h: no existe tal archivo o directorio.
Creo que tiene algo que ver con classpath, ¡pero no sé qué es! Es probable que esté configurando que tengo que cambiar en Code :: Blocks
¿Podría alguien ayudarme a arreglarlo? muchas gracias
/* 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
EDITAR:
Así que hice Configuraciones -> Compilador y depurador -> Directorios de búsqueda -> y agregué "$ (JAVA_HOME) / include" y "$ (JAVA_HOME) / include / win32" en Compiler, ¡y fue capaz de encontrarlo!
Debe agregar la ruta JDK a la ruta de inclusión para que el compilador conozca la ubicación del archivo.
Windows:
/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"