JAVA NATIVE INTERFACE (JNI) INVOCANDO C/C++ DESDE JAVA



Documentos relacionados
Clase Práctica Nº 1 ED 2015

INSTALACIÓN DEL ENTORNO DE DESARROLLO PARA EL LENGUAJE DE PROGRAMACIÓN JAVA

GUÍA PARA LA CONFIGURACIÓN Y UTILIZACIÓN DE LA IDE DRJAVA

Conociendo el ambiente de programación de Java. M. en C. Erika Vilches

Utilización de J2ME sobre Linux en plataformas embebidas

INVOCAR PROGRAMAS ASM DESDE JAVA PASO A PASO

Universidad ORT - Arquitectura de Software. Requisitos

Java. Mtro. Manuel Suárez Gutiérrez


Tarea 1 Programación José Luis Comesaña

Carrera: Analista de Sistemas. Asignatura: Resolución de Problemas y Algoritmos

Módulo 1 El lenguaje Java

Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento de Ciencia de la Computación. IIC1102 Introducción a la Programación

1. El entorno de desarrollo Eclipse

Tutorial básico del entorno de desarrollo Eclipse.

Universidad ORT - Arquitecturas de Software sobre plataforma JEE Web Services (parte 1)

Descarga, instalación y uso de herramientas:

Entorno de desarrollo Instalación y configuración

CREAR UN SERVICIO WEB BASICO CON JAVA AXIS2. Víctor J. Sosa

1. El entorno de desarrollo Eclipse

El lenguaje de programación Java

Universidad Nacional del Santa E.A.P. DE INGENIERIA DE SISTEMAS E INFORMATICA INSTALACIÓN E INTERFAZ GRÁFICA DE LA HERRAMIENTA DE PROGRAMACIÓN

Tutorial para el uso e instalación del Servicio de Reportes SQL Server

Como crear una aplicación con Java y Eclipse Fecha Lunes, 16 abril a las 19:49:51 Tema Java

Universidad Tecnológica del Valle del Mezquital. Desarrollo de Aplicaciones Web. Manual JSP

Manual de NetBeans y XAMPP

Entorno de Desarrollo - 1 -

Laboratorio 01: Programar en lenguaje ANSI C bajo Windows

Guía de Instalación de la JDK y del Eclipse

(volver a Tabla de Contenidos)

Uso de Visual C++ Pre-Practica No. 3

Introducción... 1 Qué es Java?... 1 Compilando a Bytecode... 1 Usando jgrasp Para Hacer el Trabajo Sucio... 5 El Entorno de jgrasp...

Herramientas Visuales de Programación

Manual de Instalación

MODIFICAR Y CREAR ARCHIVOS DE UNA APLICACIÓN WEB

PROCEDIMIENTO PARA REALIZAR UN BACKUP PERSONAL DE SU COMPUTADORA UTILIZANDO MICROSOFT WINDOWS BACKUP

INSTALACION MANUAL DE ECLIPSE EN UBUNTU

1. Instalación del Java Development Kit

Kosmo Desktop Manual de desarrollo Instalación y configuración del código fuente de Kosmo en Eclipse

Creación y administración de grupos locales

MANUAL INSTALACIÓN ABOGADOS MF

Tema 2: Introducción a Android

Julio C. Sandria Reynoso

CONTENIDO. Business Objects

Tutorial. Configuración del entorno de programación Code::Blocks.

Modelo de Objetos Distribuidos

Introducción al lenguaje Java

Guía de Instalación de Java y jedit. Alumno Colaborador de la Asignatura

TUTORIAL DE INSTALACIÓN Y CONFIGURACIÓN DE NETBEANS

Crear una Activity en Android. Paso por paso

Agentes con Interfaz Gráfica.

Cómo crear una copia de seguridad del contenido de Outlook. Service Desk

Creación un instalador con Visual Studio.NET. Irene Sobrón. Ingeniero de Telecomunicaciones por la Escuela Técnica Superior de Bilbao

Tema 1. Introducción a JAVA

INSTALACIÓN PHP+MYSQL CON EASYPHP

CONFIGURACIÓN DEL PLUGIN EUROBITS

Práctica: Creación de un programa C# sencillo

INDICE. Página 2 de 23

CONECTANDO EL SOFTWARE EN REDES

Introducción Entorno de ejecución Referencias Descripción del servicio

PROGRAMACIÓN ORIENTADA A OBJETOS (L40629) Sabino Miranda-Jiménez

Curso Tecnologías Móviles

Mi primer proyecto en Dev-C++

Tutorial: Cómo realizar tu primer programa en C++ En el Sistema Operativo Windows

Manual de Instalación SICO MANUAL DE INSTALACION SICO - SOFTWARE DE GESTION BASE DE DATOS SQL SERVER

1. Copias de seguridad.

Tema: Introducción a Java y Netbeans

Carlos Castro Grande 1

HOT POTATOES VERSIÓN 6. INSTALACIÓN Y PUESTA EN MARCHA BAJO LINUX

Práctica de laboratorio: Exploración del protocolo FTP

Capítulo 3 Instalación de OMNET

Java Developer Kit (JDK) 6.0 JBoss Application Server 5.1. OpenSAML Tabla 1 Requerimientos de Software

Windows Embedded Standard 7

PowerPoint 2010 Manejo de archivos

INSTRUCTIVO DE ADMINISTRADOR ALFRESCO COMMUNITY 4.2

Nociones básicas de Windows: Organizando: El Explorador de archivos de Windows

Introducción a la extensión de scripting en gvsig 2.0

Introducción a la programación (Java)

INTRODUCCIÓN A JAVA. Índice

Instrucciones de instalación de IBM SPSS Modeler Text Analytics (licencia de usuario autorizado)

Uso de carpetas, archivos e impresoras compartidas

Práctica 2: Java Remote Method Invocation (RMI)

CREACIÓN DEL PRIMER PROYECTO EN mikrobasic PRO for AVR

TUTORIAL ACADÉMICO. Programación II- Taller de Programación I Fa.CENA. UNNE

Copias de Seguridad con SQL Server Realizar una copia de seguridad de Bases de Datos

PRIMEROS PASOS EN LA APLICACIÓN REA

MONTAR GVSIG 1.9 EN ECLIPSE DESDE EL REPOSITORIO SVN. Eduardo Cristóbal

Manual de instalación de Java Runtime Environment.

GUI A D E I NSTALA CIO N D E AX IS

osoftware para Aprendizaje de Sistemas Operativos IA-32 (en Windows de 32 Bits)

MANUAL DE INSTALACIÓN Y CONFIGURACIÓN SISTEMA CAJA DE AHORRO COMUNITARIO SCAC

WEB SERVICES CON AXIS

Configuracio n de PFSense 2.0 con OpenVPN Road Warrior.

FAMILIARIZANDONOS CON JAVA

Guía de instalación del software de la asignatura

MANUAL DE AYUDA MANEJO DE SHAREPOINT CON GOTELGEST.NET

MANUAL DE INSTALACIÓN DEL COMPONENTE WEBSIGNER JAVA. Versión 4.0

PRÁCTICA 7 COPIAS DE SEGURIDAD EN WINDOWS:

Instructivo - Instalación y Uso de PDF Creator

Transcripción:

JAVA NATIVE INTERFACE (JNI) INVOCANDO C/C++ DESDE JAVA Java proporciona un marco denominado Java Native Interface (JNI), con la que es posible escribir métodos nativos. Un método nativo es un método que se mapea a una función de una librería de código nativo, tal como un DLL en Windows. Por ejemplo, se puede escribir código en C o C ++ y llamarlo desde Java. Ejemplo utilizando Ms Visual Estudio 2010 Las etapas para la implementar un proyecto en el que se invoque código C/C++ desde java son: 1. Crear en Visual Estudio un proyecto en C / C ++ de tipo DLL. 2. Escribir las firmas de método Java para los métodos nativos 3. Compilar el archivo Java y ejecutar la herramienta javah para crear archivos de encabezados en lenguaje C correspondientes a las firmas de los métodos del punto anterior. 4. Asegurarse que el proyecto incluye los directorios que contienen los encabezados JNI en sus includes 5. Basándose en los encabezados, escribir las implementaciones nativas de los métodos (en C / C + +); 6. Compilar la DLL; 7. En el código de Java, llamar System.loadLibrary () para enlazar la librería en tiempo de ejecución, y a continuación, invocar los métodos nativos. 1. Crear en Visual Estudio un programa en C / C ++ proyecto de tipo DLL En la herramienta Visual estudio ejecutar el comando file->new project

Click OK y aparece la pantalla siguiente: Clik Next Seleccionar DLL y Click en Finish.

2. Crear directorio y escribir las firmas de método Java para los métodos nativos Crear un directorio donde residirá el proyecto Java (en este ejemplo es C:\Users\ProgAva\Desktop\DADI\square). A continuación, escriba la firma del método que vamos a implementar de forma nativa. En general, esto se parece a una firma de método ordinario de Java, pero con el modificador native. Contenido del archivo Square.java package math; class Square { public native int getsquare(int x); static { System.loadLibrary("Square"); } public static void main(string[] args) { int y=new Square().getSquare(4); System.out.println(" Y = "+y); } } Contenido del archivo Square.java Contenido del directorio DADI/square 3. Compilar el archivo Java y ejecutar la herramienta javah para crear archivos de encabezados en lenguaje C Compilación y generación de encabezado

Nuevo contenido del directorio DADI/square JNIEXPORT jint JNICALL Java_math_Square_getSquare(JNIEnv *, jobject, jint); Firma de la función en C/C++ (tomada del archivo math_square.h) 4. Asegurar que el proyecto incluye los directorios que contienen los encabezados JNI en sus includes En la pantalla de Visual Estudio hacer click con el botón derecho sobre el nombre del proyecto y seleccionar la opción properties:

Aparecerá la siguiente ventana: Agregar en Additional Include Directories los directorios del JDK que contienen archivos de encabezados en lenguaje C que soportan programación en código nativo usando JNI (modifique dependiendo de su directorio de instalación de JDK): C:\Program Files\Java\jdk1.6.0_20\include C:\Program Files\Java\jdk1.6.0_20\include\win32 Agregar también el directorio donde se encuentre math_square.h a las librerías del proyecto en el caso de este ejemplo es el directorio C:\Users\ProgAva\Desktop\DADI\square Asegurarse de que la librería a generar corresponda a su plataforma Java. Por ejemplo para x64: Click en el botón Configuration Manager ubicado en la esquina superior derecha de la ventana de properties aparece: Selección de la plataforma

5. Basándose en los encabezados, escribir las implementaciones nativas de los métodos (en C / C + +) Ahora, tenemos que escribir la función de C que será nuestra implementación del método nativo. Para ello, en primer lugar, copie la firma de función en un programa en C / C + + del archivo math_square.h. Visual Studio habrá creado un archivo de código fuente predeterminada a la que se puede agregar la función. En este proyecto llamado "Square", Visual Studio agregó un archivo llamado Square.cpp. Así que se copia la línea anterior en Square.cpp, añadiendo los nombres de las variables y un cuerpo de método. También se incluye el archivo de encabezados math_square.h, ya que este a su vez incluye los encabezados JNI, que vamos a necesitar para acceder a funciones JNI y tipos de datos. El resultado es el siguiente: // Square.cpp : Defines the exported functions for the DLL application. #include "stdafx.h" #include <jni.h> #include "math_square.h" #include <stdio.h> JNIEXPORT jint JNICALL Java_math_Square_getSquare(JNIEnv * a, jobject b, jint x) { return x*x; } Implementación del método en C++ 6. Compilar la DLL

7. En el código de Java, llamar System.loadLibrary () para enlazar la librería Instalar la librería en donde la pueda localizar la JVM por ejemplo en la misma carpeta donde está el archivo Java. (La librería puede ser localizada haciendo click derecho sobre el nombre del proyecto y seleccionando Open Folder in Windows Explorer) Ir al directorio Square\x64\Debug Copiar el archivo Square.dll Y copiarlo en la carpeta donde está el.java Contenido final del directorio DADI/square

Ejecución del programa Java