ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Como crear JNI

Jaime FranciscoPráctica o problema2 de Febrero de 2016

465 Palabras (2 Páginas)431 Visitas

Página 1 de 2

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:

        sudo cp libhola.so /usr/lib/jvm/java-7-openjdk-amd64/jre/lib/amd64

Hay que cambiar los permidos para libhola.so:

        sudo chmod 644 /usr/lib/jvm/java-7-openjdk-md64/jre/lib/amd64 /libhola.so

Nota:        Para la presente compilación se ha utilizado la versión 7 del JDK,  razón por lo que se usa la ruta /usr/lib/jvm/java-7-openjdk-amd64/  como carpeta de instalación del java; esta ruta podría cambiar en el caso de utilizar otra distribución de java.

Para probar la librería dinámica creada, se puede usar la siguiente clase de aplicación java:

...

Descargar como (para miembros actualizados) txt (3 Kb) pdf (137 Kb) docx (119 Kb)
Leer 1 página más »
Disponible sólo en Clubensayos.com