You are on page 1of 10

A partir JNI con NetBeans Pack 6,1 y Microsoft Visual C++ 6.

0
http://translate.google.com/translate?hl=es&sl=en&u=http://www.netbeans.org/kb/55/beginning-jnipart1.html&sa=X&oi=translate&resnum=3&ct=result&prev=/search%3Fq%3DBeginning%2BJNI%2Bwith %2BNetBeans%2BC/C%252B%252B%2BPack%2B6.0%2Bwindows%26hl%3Des%26sa%3DG Contribuido y mantenido por Dmitry Lipin Y Kirill Sorokin . Actualiza por Evelio Granizo

El tutorial te guiar a travs de la creacin de una aplicacin de ejemplo que utiliza JNI para ejecutar cdigo nativo escrito en el lenguaje de programacin C. Para la parte de la aplicacin de Java usted debe usar NetBeans IDE de 6,1; Para la parte de C Microsoft Visual Studio 6.0. Usted empezar por la creacin de un simple proyecto de Java, adicionando un mtodo nativo y la implementacin del mtodo en C usando Microsoft Visual Studio 6.0. Esta es la parte del tutorial que abarca la creacin de una aplicacin de ejemplo JNI en el Microsoft Windows operating system. Duracin prevista: 30 minutos

Requisitos
Este tutorial asume que usted tiene algunos conocimientos bsicos, o con experiencia en programacin, de las siguientes tecnologas:

Lenguaje de programacin Java Lenguaje de programacin C. NetBeans IDE 6.1 Microsoft Visual studio 6.0

Software necesario para tutorial


Antes de empezar, es necesario instalar el siguiente software en su computadora:

J2SE Development Kit (JDK ) 6.0 (descargar) NetBeans IDE 6.1 (descargar) Microsoft Visual Studio 6.0, solo Microsoft Visual C++ (instalar)

Notaciones utilizadas en el tutorial



<JAVA_HOME> - El directorio de instalacin de JDK <PROJECTS_ROOT> - Directorio que contiene el proyecto Java creado por usted

Tutorial Ejercicios

Ejercicio 0: Instalar y Configurar el Medio Ambiente del Tutorial Ejercicio 1: Configuracin de un proyecto general de aplicacin Java Ejercicio 2: La creacin de nuevos proyectos de libreras dinmicas C/C++ Ejercicio 3: Creacin y ejecucin de la aplicacin

Ejercicio 0: Instalar y Configurar el Medio Ambiente del Tutorial


Este ejercicio le guiar a travs del proceso de instalacin y configuracin del software necesario. Si bien la instalacin de JDK, y NetBeans IDE Pack es bastante trivial, Visual Studio 6.0 requiere una atencin especial. Despus de instalar el software, algunos pequeos cambios a la configuracin del sistema se deben aplicar.

La instalacin de Microsoft Visual Studio 6.0


Instalar el Microsoft Visual Studio 6.0 solo con la aplicacin Microsoft Visual C++ 6.0. En la instalacin aadir las variables de entorno y la mquina virtual de java.

Configuracin de Sistema
Si no aadi las variables de entorno aadirlas desde el Panel de Control de Windows para INCLUDE, LIB y PATH.

Ejecucin del Software


Inicie el IDE NetBeans.

Ejercicio 1: Configuracin de un proyecto general de aplicacin Java


El objetivo de este ejercicio es crear y configurar la parte de Java de la aplicacin JNI que ser desarrollada. Va a crear un nuevo proyecto de aplicacin Java, inicializar su clase principal y aadir un mtodo nativo para esta clase.

Creacin de un proyecto general de aplicacin Java


1. Seleccione File > New Project. bajo Choose Project, seleccione Java. seleccione Java Application, y haga clic en Next. Bajo Projects,

Figura 1

2. 3.

A la derecha de Project Name, escriba HelloWorld. Cambie Project Location a cualquier directorio en su computadora (en lo sucesivo, este directorio se denomina <PROJECTS_ROOT>).

4.

Deje la casilla de verificacin Create Main Class seleccionada y acepte el valor por defecto para el campo de texto correspondiente.

5.

Deje la casilla de verificacin Set as Main Project seleccionada, y haga clic en Finish.

Figura 2

El IDE crea la carpeta de proyecto <PROJECTS_ROOT>/HelloWorld.

Edicin de la fuente de la clase Main


1. 2. Para abrir la fuente de la clase Main en el editor, haga clic derecho en el nodo de la clase Main, y seleccione Open en el men contextual. Reemplace el cuerpo del mtodo main con el siguiente texto:

new Main().nativePrint ();


Espere hasta que la lnea recin ingresada se destaque con una ola de color rojo. Pulse Alt lnea de la lista desplegable.

3.

Enter y elija Create Method nativePrint() in helloworld.Main en la

Un error de compilacin fue causado por referencias a un mtodo no existente en el paso 2 y el IDE automticamente propone una solucin para este problema.

Figura 3

4.

Editar el mtodo nativePrint(). Borrar el contenido del mtodo y aadir la palabra clave native al mtodo. Por lo tanto, el mtodo debe ser ahora similar a este:

private native void nativePrint();


La palabra clave native indica que el mtodo tiene una aplicacin externa situada en una biblioteca nativa, por lo tanto, el cdigo va a compilar correctamente. Sin embargo en tiempo de ejecucin la ubicacin de la biblioteca no est clara. Consulte la Configuracin de la seccin de proyectos Java a continuacin para obtener ms informacin. 5. Presione Shift - F11 para limpiar y construir el proyecto. El proyecto debe construirse con xito.

Creacin del archivo de cabecera de la biblioteca nativa


1. 2. Cambie a la consola y navegue al directorio <PROJECTS_ROOT>. Escriba lo siguiente:

<JAVA_HOME>\bin\javah.exe -o HelloWorldNative.h -jni -classpath <PROJECTS_ROOT>\HelloWorld\build\classes helloworld.Main


NOTA: Si el nombre de un directorio tiene espacios en blanco, el mismo se debe colocar entre comillas. Un archivo de cabecera C HelloWorldNative.h se genera en <PROJECTS_ROOT>. Es necesario proporcionar una correcta declaracin de la funcin nativa para la aplicacin del mtodo nativePrint(). 3. Volver a la ventana de NetBeans IDE.

Resumen
En este ejercicio, que ha creado una nueva aplicacin Java General del Proyecto, se especifica su ubicacin y se define el paquete y el nombre de la clase principal del proyecto. Tambin agreg un

nuevo mtodo de la clase principal y marc como un mtodo con una aplicacin nativa. Como paso final, creamos un archivo de cabecera de C que es requerido despus para la compilacin de la librera nativa.

Ejercicio 2: La creacin de nuevos proyectos de libreras dinmicas C/C++


Este ejercicio le llevar a travs de la creacin de la parte nativa de la aplicacin de ejemplo. Usted crear el proyecto de la librera dinmica de C++ y lo configura para poder construir el cdigo JNI. Despus de que el proyecto se ha creado, va a crear la aplicacin para el mtodo nativo, que ha declarado anteriormente en la parte Java de la aplicacin.

La creacin de un nuevo proyecto de librera dinmica C/C++


1. En Microsoft Visual C++ 6.0 seleccione File > New, en la pestaa Project seleccione Win32 Dynamic-Link Library. Bajo Project name escriba el nombre del proyecto HelloWorldNative, cambie en Location al directorio <PROJECTS_ROOT>, y haga clic en OK.

Figura 4

2.

Seleccione An empty DD Project. Para crear un proyecto DLL vaco, luego haga clic Finish.

Figura 5

3.

Le muestra la informacin del proyecto creado. Digite OK.

Figura 6

Copiar archivos de cabecera al directorio del proyecto de C/C++


1. 2. 3. Copiar el archivo de cabecera HelloWorldNative.h generado en <PROJECTS_ROOT>, a la carpeta del proyecto de C/C++ HelloWorldNative. Copiar el archivo de cabecera jni.h del directorio <JAVA_HOME>/include, a la carpeta del proyecto de C/C++ HelloWorldNative. Copiar el archivo de cabecera jni_md.h del directorio <JAVA_HOME>/incluye/win32, a la carpeta del proyecto de C/C++ HelloWorldNative.

Agregando archivos de cabecera al proyecto de C/C++


1. Seleccione Project > Add to Project > Files, elija HelloWorldNative.h, luego haga clic en OK.

Figura 7

2. 3.

Repita el paso 1 para el archivo de cabecera jni.h. Cambie en el archivo de cabecera HelloWorldNative.h la sentencia de preprocesador #include <jni.h> por #include "jni.h".

Ejecucin del proyecto DLL


1. Seleccione File > New. En la pestaa Files selecciones Text File, a continuacin bajo File name escriba el nombre luego del archivo HelloWorlNative.c, y haga clic en OK.

Figura 8

2.

Editar el archivo HelloWorldNative.c escribiendo el siguiente cdigo:

#include "jni.h" #include <stdio.h> #include "HelloWorldNative.h" JNIEXPORT void JNICALL Java_helloworld_Main_nativePrint (JNIEnv *env, jobject obj) { printf("\nHello World from C\n"); }

3. 4.

Seleccione Build > Build HelloWorldNative.dll, generndose HelloWorldNative.dll en la carpeta Build del proyecto HelloWorldNative.

el

archivo

Copie el archivo HelloWorldNative.dll al directorio <PROJECTS_ROOT>/ HelloWorld.

Resumen
En este ejercicio usted ha creado una nueva librera Dinmica C/C++, se especifica su ubicacin y configuracin para ser capaz la implementacin JNI de su mtodo de Java. Se ha aadido el archivo de cabecera generado para el mtodo nativo que ha declarado en la aplicacin Java y lo aplic.

Ejercicio 3: Creacin y ejecucin de la aplicacin


En este ejercicio se realizarn algunas modificaciones finales a la parte de la aplicacin de Java. Esto es necesario para asegurar la parte de Java cargue adecuadamente la librera nativa que haba compilado en el anterior ejercicio. Despus de que se compila y ejecuta la aplicacin resultante.

Configuracin de Java proyecto


1. 2. Abra el archivo Main.java en el editor. Aadir el siguiente cdigo de inicializacin:

static { System.loadLibrary ("HelloWorldNative"); }

Figura 9

Ejecucin de la Aplicacin
1. 2. Para definir el proyecto Java HelloWorld como proyecto principal, pulse el botn derecho del nodo del proyecto y elija Set As Main Project en el men de contexto. Pulse F6 para ejecutar la aplicacin. El programa debe ejecutar correctamente y el cuadro de dilogo de salida debe decir:

Hello World from C Native.dll") BUILD SUCCESSFUL (total time: 0 seconds)

Figura 10

Resumen
En este ejercicio usted ha hecho algunos pasos de configuraciones finales y corri la solicitud para verificar que la aplicacin del mtodo nativo viene de la librera C nativa.

10

You might also like