Como crear JNI
Enviado por Jaime Francisco • 2 de Febrero de 2016 • Práctica o problema • 465 Palabras (2 Páginas) • 390 Visitas
UNIVERSIDAD DE LAS FUERZAS ARMADAS -ESPE
DEPARTAMENTO DE ELÉCTRICA Y ELECTRÓNICA
DOCENTE: ING. JAIME ANDRANGO CASTRO
ASIGNATURA: TECNOLOGÍAS DE SOFTWARE PARA ELECTRÓNICA.
Junio, 2015
Tema: Guía para la creación de una librería dinámica que implementa el mecanismo JNI. Se utiliza la distribución Ubuntu de linux, el compilador GCC y el JDK.
Se crea la clase HolaMundo (archivo HolaMundo.java)
//archivo HolaMundo.java
class HolaMundo
{
public native void presentaSaludo();
static {
System.loadLibrary( "hola" );
}
}
Se compila esta clase, con: javac HolaMundo.java
creándose el archivo HolaMundo.class,
A continuación se crea el archivo de cabecera HolaMundo.h con:
javah -jni HolaMundo
Haciendo uso de la declaración creada mediante javah, de la función presentaSaludo(), se procede a crear el archivo en lenguaje nativo C; por lo que se crea el archivo holaImp.c,
//archivo holaImp.c
#include
#include "HolaMundo.h"
#include
JNIEXPORT void JNICALL Java_HolaMundo_presentaSaludo(JNIEnv *env, jobject obj)
{ printf( "La ESPE te saluda, con el mecanismo JNI\n" );
return;
}
Para crear la librería de enlace dinámico libhola.so, se compila con:
gcc -shared -fpic -o libhola.so -I/usr/lib/jvm/java-7-openjdk-amd64/include -I/usr/lib/jvm/java-7-openjdk-amd64/include/linux/ holaImp.c
Se debe copiar el archivo holaImp.so en la carpeta: /usr/lib/jvm/java-7-openjdk-amd64/jre/lib/amd64/. Se podría usar:
...