Java JNIs e interfaz Java a C y C++

Páginas: 13 (3074 palabras) Publicado: 13 de abril de 2013
Java JNIs e interfaz Java a C y C++

La plataforma Java 2 incorpora la interfaz de programación Java Native Interface (JNI), para permitir que se puedan escribir programas en otros lenguajes diferentes a Java y mantener la portabilidad entre todas las plataformas, entendiendo por métodos o aplicaciones nativas aquellas escritas en un lenguaje diferente a Java.

Además, JNI permite que elcódigo Java que se ejecute en una Máquina Virtual Java pueda interactuar con aplicaciones y librerías escritas en otros lenguajes, como C, C++, Fortran, Cobol o ensamblador. Además, la interfaz de programación Invocation API permite que se puedan llamar a código de la Máquina Virtual Java desde aplicaciones nativas.

El objetivo de utilizar JNI para escribir métodos nativos es el de permitir quelos programadores puedan manejar aquellas situaciones en las que una aplicación no puede ser escrita enteramente en Java. Por ejemplo, algunas de las situaciones en las que puede ser necesario recurrir a métodos nativos son las siguientes.

• La librería de clases estándar de Java no soporta las características dependientes de plataforma necesarias para la ejecución de la aplicación.

• Ya hayuna aplicación o librería escrita en otro lenguaje y se quiere que sea accesible a los programas Java.

• Puede necesitarse escribir una pequeña porción de código crítica en cuanto a su tiempo de ejecución, en un lenguaje de bajo nivel, ensamblador por ejemplo, y hacer que los programas Java llamen a esas funciones.

La programación a través del entorno que proporciona JNI para implementarmétodos nativos involucra varias operaciones, y proporciona a estos métodos nativos una gran flexibilidad, de forma que un método nativo puede utilizar los objetos Java del mismo modo que el propio Java los usa. Un método nativo puede crear objetos Java, incluyendo arrays y objetos de tipo String, y luego inspeccionarlos y utilizarlos para sus propias operaciones. Un método nativo también puedeinspeccionar y utilizar objetos creados por la parte de código Java de la aplicación. Un método nativo puede actualizar objetos Java ya creados para que luego sean usados por la parte de código Java de la aplicación. En resumen, las partes Java y nativa de la aplicación pueden crear, actualizar, acceder y compilar objetos Java.

Los métodos nativos pueden llamar a métodos Java con suma facilidad.JNIpermite utilizar las ventajas que ofrece el lenguaje de programación Java desde métodos nativos; en concreto, permite capturar y lanzar excepciones desde métodos nativos y que estas excepciones sean manejadas en la aplicación Java. Finalmente, los métodos nativos pueden utilizar JNI para realizar la comprobación de tipos estricta que proporciona Java en tiempo de ejecución.

La siguiente figuraresume todas las características anteriores, mostrando como JNI sirve de enlace entre Java y aplicaciones nativas, por ejemplo, escritas en lenguaje C.



A continuación, se muestran los pasos necesarios para mezclar código nativo C y programas Java. El programa HolaMundoN tiene dos clases Java: La primera implementa el método main() y la segunda, HolaMundoN, tiene un método nativo querepresenta el mensaje de saludo. La implementación de este segundo método se realiza en C, y la clase se llama HolaMundoN, para indicar que es la versión del saludo que contiene código nativo en su interior.

ESCRIBIR CÓDIGO JAVA

En primer lugar, hay que crear una clase Java, HolaMundoN, que declare un método nativo. También hay que crear el método principal que cree el objeto HolaMundoN y llame almétodo nativo.

Las siguientes líneas de código definen la clase HolaMundoN, que consta de un método y un segmento estático de código:

class HolaMundoN {
public native void presentaSaludo();
static {
System.loadLibrary( "hola" );
}

Se puede decir que la implementación del método presentaSaludo() de la clase HolaMundoN está escrito en otro lenguaje, porque...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Subprogramas en java y c++
  • Tipos de datos c++, java
  • Diferencia entre C ++ Y JAVA
  • Como programas en c y en java
  • Java Vs C#
  • C++ vs java
  • C++ Vs Java
  • C# Vs Java

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS