Actualizado el 21 de Marzo del 2018 (Publicado el 28 de Noviembre del 2017)
781 visualizaciones desde el 28 de Noviembre del 2017
491,8 KB
5 paginas
Creado hace 18a (30/10/2006)
CREACIÓN DE UNA PASARELA JNI
LUIS MENGUAL GALÁN
1. CREACIÓN DE UNA PASARELA JNI
Para crear una pasarela JNI lo que hay que hacer es lo siguiente:
1.1 Codificación en Java del método Nativo
Nos creamos un fichero MIJNIint.java en el que diseñamos un método nativo que se
llama getIncremento que devuelve inicialmente un valor entero al ser invocado desde
C.
static
{
}
System.loadLibrary("MIJNIint");
public native int getIncremento();
import java.util.*;
public class MIJNIint
{
public static void main(String[] args)
{
System.out.print(resultado);
}
int resultado;
MIJNIint oneint = new MIJNIint();
resultado=oneint.getIncremento();
}
1.2 Creación del fichero “MIJNIint.class”.
Compilamos este fichero con “javac MIJNIint.java” desde la línea de comandos. El
resultado es que tenemos un fichero “MIJNIint.class”.
- Pág. 1 de 1 -
CREACIÓN DE UNA PASARELA JNI
LUIS MENGUAL GALÁN
1.3 Creación del fichero “MIJNIint.h”.
Hacemos “javah –jni MIJNIint” el resultado es que tenemos el fichero cabecera
“MIJNIint.h”.
/* DO NOT EDIT THIS FILE - it is machine generated */
#include <jni.h>
/* Header for class MIJNIint */
#ifndef _Included_MIJNIint
#define _Included_MIJNIint
#ifdef __cplusplus
extern "C" {
#endif
/*
* Class: MIJNIint
* Method: getIncremento
* Signature: ()I
*/
JNIEXPORT jint JNICALL Java_MIJNIint_getIncremento
(JNIEnv *, jobject);
#ifdef __cplusplus
}
#endif
#endif
“jint” quiere decir que este procedimiento devuelve un entero.
1.4 Creacion de una DLL dinamica en un Proyecto Visual
Studio 6.0 / Visual Studio 8.0
Ahora nos vamos a Visual Studio y nos creamos una aplicación WIN32 dinamic-library.
Nos metemos en el proyecto el fichero MIJNIint.h y nos creamos un fichero en c que
en nuestro caso se llama “MIJNIint..cpp” en el que simplemente hacemos algo y
retornamos un entero. Compilamos y el resultado es la generación de una DLL. En
nuestro caso “MIJNIint..dll”. Una cosa importante a tener en cuenta es que al
- Pág. 2 de 2 -
CREACIÓN DE UNA PASARELA JNI
LUIS MENGUAL GALÁN
compilar se requiere el fichero jni.h que no es un fichero de Visual Studio sino de java
que se encuentra en :”C:\Archivos de programa\jdk1.3.1\include” y otros adicionales
que se encuentran en C:\Archivos de programa\jdk1.3.1\include\win32. El path se lo
damos en el proyecto y así funciona*.
(*Estamos suponiendo en el ejemplo que tenemos instalada la maquina virtual jdk1.3.1)
// PROY_MIOJNI.cpp : Defines the entry point for the DLL application.
//
#include "stdafx.h"
#include <jni.h>
#include "MIJNIint.h"
JNIEXPORT jint JNICALL Java_MIJNIint_getIncremento
(JNIEnv *, jobject)
{
}
return (miint);
int miint=20;
1.5 Ejecución de la Pasarela JNI
Ahora solo hace falta es cambiar el nombre de la DLL por “MIJNIint.dll”. Luego
juntamos este fichero con el de “MIJNIint.class y hacemos java MIJNIint y
el programa desde java nos devolvería el valor 20
- Pág. 3 de 3 -
CREACIÓN DE UNA PASARELA JNI
LUIS MENGUAL GALÁN
2. CREACIÓN DE UNA DLL EN VISUAL
STUDIO8.0 (2005)
- Pág. 4 de 4 -
CREACIÓN DE UNA PASARELA JNI
LUIS MENGUAL GALÁN
3. ESTABLECIMIENTO DE LOS
JNI.H Y OTROS EN VISUAL STUDO 8.0
INCLUDES
- Pág. 5 de 5 -
Comentarios de: CREACIÓN DE UNA PASARELA JNI (0)
No hay comentarios