java jni codeblocks

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"