Ahora podemos entrar en el negocio de escribir la implementaci�n del m�todo nativo en otro lenguaje distinto de java.
La funci�n que escribamos debe tener la misma firma de funci�n que la que se gener� con javah dentro del fichero HelloWorld.h en el Paso 3: Crear el fichero .h. Recuerda que la firma de la funci�n generada para el m�todo nativo displayHelloWorld() de la clase HelloWolrd, se parece a esto.
JNIEXPORT void JNICALL Java_HelloWorld_displayHelloWorld(JNIEnv *, jobject);
Aqu� tienes la implementaci�n en lenguaje C para el m�todo nativo Java_HelloWorld_displayHelloWorld(). Esta implementaci�n se encuentra en el fichero llamado HelloWorldImp.c.
#include <jni.h> #include "HelloWorld.h" #include <stdio.h> JNIEXPORT void JNICALL Java_HelloWorld_displayHelloWorld(JNIEnv *env, jobject obj) { printf("Hello world!\n"); return; }
La implementaci�n para Java_HelloWorld_displayHelloWorld() es correcta: la funci�n utiliza la funci�n printf() para mostrar el string "Hello World!" y retorna.
Este fichero incluye tres ficheros de cabecera.
- jni.h - Este fichero de cabecera proporciona informaci�n que el c�digo nativo necesita para interactuar con el sistema de ejecuci�n Java. Cuando se escriban m�todos nativos, siempre se debe incluir este fichero de cabecera en los ficheros fuente nativos.
- HelloWorld.h - El fichero .h que se gener� en el Paso 3: Crear el fichero .h.
- stdio.h - El c�digo anterior tambi�n incluye el fichero stdio.h porque utiliza la funci�n printf().