native es una palabra clave de java. Marca un método, que será implementado en otros lenguajes, no en Java. El método se declara sin cuerpo y no puede ser abstract. Funciona junto con JNI (Java Native Interface).

Sintaxis:

  method();

Los métodos nativos se utilizaban en el pasado para escribir secciones críticas para el rendimiento, pero con java cada vez más rápido esto es ahora menos común. Los métodos nativos son actualmente necesarios cuando

  • Se necesita llamar desde java a una librería, escrita en otro lenguaje.
  • Se necesita acceder a recursos del sistema o del hardware que sólo son alcanzables desde el otro lenguaje (típicamente C). En realidad, muchas funciones del sistema que interactúan con el ordenador real (IO de disco y de red, por ejemplo) sólo pueden hacerlo porque llaman a código nativo.

Para completar la escritura de un método nativo, necesita procesar su clase con la herramienta javah que generará un código de cabecera en C. A continuación, necesita proporcionar la implementación del código de cabecera, producir una biblioteca cargable dinámicamente (.so en Linux, .dll en Windows) y cargarla (en el caso más simple con System.load(library_file_name) . La finalización del código es trivial si sólo se pasan tipos primitivos como enteros, pero se vuelve más compleja si se necesita intercambiar cadenas u objetos del código C. En general, todo puede estar en el nivel de C, incluyendo la creación de los nuevos objetos y la devolución de la llamada a los métodos, escritos en java.

Para llamar al código en algún otro lenguaje (incluyendo C++), es necesario escribir un puente desde C a ese lenguaje. Esto suele ser trivial, ya que la mayoría de los lenguajes se pueden llamar desde C.

Articles

Deja una respuesta

Tu dirección de correo electrónico no será publicada.