Paso 4: Escribir la Implementación del Método Nativo
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().