Introducción a la palabra clave nativa en Java
La palabra clave nativa actúa como un enlace entre el lenguaje JAVA y un fragmento de código o biblioteca escrito en diferentes idiomas, excepto JAVA, que puede depender de la máquina en la que está operando. Si la palabra clave nativa se aplica a un método, eso significa que el método se implementará utilizando código nativo escrito en algún otro lenguaje (como C o C ++) a través de JNI (interfaz nativa JAVA).
Sintaxis
La sintaxis del código nativo es la misma que la definición de función normal con la palabra clave "nativa" agregada al inicio de la función.
Por ejemplo:
Public class testing
(public native String testMethod (String parameter);)
Aquí el público es un modificador de acceso. Debe ser público para que otro archivo pueda usarlo. La cadena es el tipo de datos de retorno de la función. Puede ser entero, caracter o booleano dependiendo de la palabra clave. El parámetro pasado a esta función también es de tipo cadena de datos. Todo debe mantenerse bajo clase.
Después de la declaración de la función, llamamos a esta función a través del objeto creado y la biblioteca cargada.
public static void main(String() args)
(
System.loadLibrary("testing");
testing testingnew = new testing();
String output = testingnew.stringMethod("NATIVE");
)
La biblioteca definida anteriormente debe cargarse primero y luego se crea su objeto. Con la ayuda de este objeto, se llama a la función nativa.
¿Cómo funciona la palabra clave nativa?
Debería haber dos archivos. Uno que contiene código JAVA, mientras que el otro debe tener código heredado C / C ++. El código Java se usará para llamar al código heredado. Este código heredado interactuará con el hardware y devolverá el resultado esperado.
Cuando el código heredado interactúa con el hardware, no seguirá las pautas establecidas por JAVA. Este código realizará el procesamiento deseado para obtener la salida y pasar los resultados a JNI. La interfaz nativa de Java verificará en su directorio que contiene todas las reglas relacionadas con el código nativo (esto viene bajo un archivo llamado javah.exe en SDK). JNI está diseñado como parte del kit de herramientas de Java. Después de este procesamiento, JAVA publicará las salidas en el propio lenguaje JAVA. Cuando estamos creando el programa en JAVA, debemos asegurarnos de que haya un enlace de flujo de datos / variable entre el archivo JAVA y el archivo heredado para que haya un flujo de datos fluido entre ambos.
A continuación se detallan los pasos que explican cómo utilizar las palabras clave nativas:
- Escriba el código JAVA que contiene el método nativo, la biblioteca compartida cargada y guárdelo usando "filename.JAVA".
- Compile el código JAVA y convierta el código a bytecode.
- Cree un archivo de encabezado C / C ++ que contenga una firma de función nativa que debería llamarse.
- Escribir código C / C ++ tiene una implementación de método nativo.
- Ejecute el archivo ejecutable JAVA para ver los resultados.
Ejemplo
Deberíamos escribir código en Eclipse y ejecutar el código para crear una biblioteca con la cual se implementará el código C.
Código : paquete com.slackerOne;
public class JPP (
public static native void pAccess();
public static native int pRead();
public static native void pWrite(int port, int output);
static(
System.loadLibrary("JPPlibs");
)
public void jAccess()(
JPP.pAccess();
)
public int jRead()(
return JPP.pRead();
)
public void jWrite(int port, int output)(
JPP.pWrite(port, output);
)
)
Después de guardar este código en la nueva "clase" del proyecto java. Tenemos que configurar un entorno de ejecución para generar un archivo de encabezado.
Cuando ejecutaremos esto, deberíamos generar una biblioteca.
Salida:
Aquí creamos el archivo de encabezado del código java que actuará como un enlace entre el código nativo y el lenguaje java.
Ventajas de la palabra clave nativa en Java
- Proporciona una ventaja adicional a JAVA para interactuar con el código escrito en otros idiomas y reducir el trabajo para tener el mismo código escrito en JAVA, lo que reduce la redundancia del código.
- Mejora el rendimiento general del código. Como el código está escrito en otros idiomas, puede ser más rápido cuando funciona con el lenguaje de máquina en comparación con JAVA. Entonces podemos usar el programa JAVA para llamar a este código.
- Usando este enfoque, podemos dar directamente llamadas al sistema. Reduciendo la probabilidad de interferencia externa y mejorando la velocidad de ejecución del código.
- Puede llamar dinámicamente a una biblioteca precargada (escrita en cualquier idioma que no sea JAVA) utilizando un código de conducción arbitrario escrito en JAVA y aún así obtener una respuesta en JAVA.
- Permite que JAVA acceda a los recursos de hardware que están disponibles para ser utilizados solo por otros idiomas.
- En caso de que tenga un código dependiente de la plataforma ya creado para su aplicación y cuyas características no sean compatibles a través de JAVA, en ese caso, podemos tener un código nativo y vincular este código nativo a JAVA a través de una palabra clave nativa.
Reglas
- La palabra clave nativa se utilizará antes del nombre del método.
- La declaración de método nativo no tiene el cuerpo y debe terminar con un punto y coma, ya que estos métodos no están definidos en JAVA pero están presentes en lenguaje C / C ++.
- Los métodos nativos no pueden declararse como un método abstracto.
- Dado que no hay certeza si el antiguo código anterior está escrito de acuerdo con el estándar IEEE 754 (El Estándar IEEE para Aritmética de punto flotante es un estándar técnico para la aritmética de punto flotante establecido en 1985 por el Instituto de Ingenieros Eléctricos y Electrónicos), entonces, No podemos declarar estos métodos nativos como estrictosftp.
- La especificación Java Native Interface (JNI) está diseñada por JAVA para definir las reglas y declaraciones para implementar métodos nativos, como la conversión de tipos de datos entre Java y el código nativo.
Conclusión
La palabra clave nativa es la que cierra la brecha entre los idiomas nativos y JAVA. Esto se puede usar como un enlace crítico si la interacción de nuestro software con el hardware es más para obtener el código eficiente usando código preexistente. Hace que la implementación funcione menos en comparación con el diseño de un nuevo código de aplicación desde cero donde sea que se pueda evitar.
Artículos recomendados
Esta es una guía de palabras clave nativas en Java. Aquí discutimos cómo funciona la palabra clave nativa con los ejemplos, así como las ventajas y las reglas. También puede echar un vistazo a los siguientes artículos para obtener más información:
- JTabbedPane en Java
- Palabra clave protegida en Java
- máquina virtual de Java
- Componentes Swing en Java
- Palabras clave de C ++