JNI (Java Native Interface) Centos
En este blog se mostrara como crear un archivo sencillo en Java para mostrar el Famoso Hola Mundo Utilizando JNI, para saber mas de Java Native Interface Verificar el siguiente Link:
La realizacion del pequeño tutorial se realiza mediante el SO Linux en particular CENTOS; Buenos empezemos a realizar la creacion del programa y la compilacion.
Posteriormente cuando ya se tiene creada la clase se compila en mi caso seria de la siguiente manera.
javac Testing.java Realizamos la compilacion de la clase Testing.java
y tambien compilamos de la siguiente manera donde nos generara un archivo Testing.h
javah Testing y nos genera el header nativo de C.
Ya tenemos la compilacion de Java y la creacion del Header Nativo de C.
Despues creamos una clase en C que se llamara Testing.c y quedaria de la siguiente forma:
Posteriormente para ver el resultado final realizaremos la compilacion de la siguiente manera en este caso lo estoy realizando desde la consola de Centos.
En este caso yo lo tengo en una carpeta (JNI)en escritorio donde se encuentran todos los archivos creados anteriormente.
export LD_LIBRARY_PATH='/home/guru/Escritorio/JNI'
echo ${LD_LIBRARY_PATH}
para confirmar nos muestra la ruta donde se encuentra nuestros archivos.
si no lo tenemos instalado tendriamos que realizar la instalacion del gcc en linux.
Para realizar la compilacion en la consola pondremos la siguiente linea.
Donde:
-I/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.33/include ruta donde se encuentra instalado nuestro jdk e include que se utilizara.
y
posteriormente volvemos a poner la siguiente ruta agregando los parametros linux Testing.c que es el nombre del archivo en c creado
-o libTesting.so es el nuevo archivo que se creo en nuestra carpeta para poder compilar nuestra aplicacion de java.
-I/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.33/include/linux Testing.c -o libTesting.so
Por ultimo ejecutamos en consola el siguiente comando para ver el resultado final:
Resultado:
Saludos
- joseguru's blog
- Inicie sesión o regístrese para enviar comentarios
y en el otro sentido
Esto es para poder invocar un método de Java desde C. Ahora estaría bueno ver la otra parte: invocar una función en C desde Java...
respuesta
En eso estoy trabajando maestro, estoy realizando por paso de parametros para ver una respuesta de Java a C, posteriormente pongo a la inversa.
Saludos.
The Java Native Interface
The Java Native Interface: Programmer's Guide and Specification
Para aquellos interesados, este libro es un clásico sobre el tema. Hay una vista previa en Google Books. He visto que algunos sitios web (incluyendo los de algunas universidades) distribuyen una versión en PDF del mismo. No sabría decir si de forma legal.
La verdad es que se han gastado muchos bytes al respecto. Tan sólo hay que ver las referencias externas en la correspondiente entrada en Wikipedia.
~~~
Gracias The Java Native
Tienes razon hay algunas distribuciones en PDF y mucha informacion al respecto, de todo lo relacionado con JNI.
saludos.
Muy buen aporte, me dan ganas
Muy buen aporte, me dan ganas de jugarle un poco, solo una crítica constructiva: es común olvidar que Linux es solo el kernel el SO es el proyecto GNU y Linux, osea, GNU/Linux. De nuevo, MUY BUEN APORTE.
Saludos.
invocar una funcion en C dese JAVA