Java - JNI

 
Vista:

JNI

Publicado por Clayder (70 intervenciones) el 08/11/2006 00:18:13
Hola a todos:

Bueno, en esta oportunidad escribo para saber como se usa el JNI. En primer lugar, yo comencé a Programar en Java y no tengo ni las minimas nociones de como hacerlo en C, por lo cual tengo algunas preguntas que espero me sepan responder : )

En escencia quisiera saber que es el JNI, es decir ahi puedo usar metodos nativos o algo asi, no?. En otras palabras en este caso ¿dependo del sistema operativo en que trabaje?. Y como asi uso metodos nativos del sistema, es decir, ¿tambien se importan como en Java y hay librerias y metodos en cada una?

Ya se que en java para usar metodos llamamos a las librerias que estan en un .jar pero como hariamos esto en C, es decir tendriamos que llamar a las librerias del sistema, no?; y si hacemos esto, ¿en C++ tambien se pueden crear ventanas como en Java importando librerias? y, ... ademas si alguien pudiera decirme que es un .dll, acaso es un equivalente a un .jar en java?

Bueno disculpen si los aburrí pero voy a esto porque ¿se podrian hacer un Sistema Operativo en Java o solo sirve para hacer aplicaciones de escritorio que compilan sobre la JVM y corren tambien dependiendo de ella.

Agradezco el tiempo que se tomaron en leer mi post, y les agradeceré mas si me lo reponden.: )

Muchimas gracias!!!!!!

Saludos
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

RE:JNI

Publicado por chuidiang (950 intervenciones) el 08/11/2006 06:40:44
Hola:

Efectivamente, con JNI puedes llamar desde java a una función que esté hecha en C (o cualquier lenguaje capaz de generar una librería).

Una .dll es una librería de funciones (como dices tú, el equivalente a un .jar). No tiene funcion o metodo main() y por tanto no se puede ejecutar como un programa. Simplemente tiene dentro funciones ya compiladas.

Desde un programa tuyo en C puedes llamar a funciones de esa librería. Con JNI también puedes hacerlo desde un programa tuyo en java.

Por supuesto, si usas JNI y llamas a funciones que estén dentro de una .dll, ese programa java necesita la .dll y sólo corre en windows. De todas formas, en unix las librerías equivalentes a .dll se llaman .so. Si tienes la libería .so equivalente a la .dll entonces tu programa podrá correr en ambos sitios.

Lo del sistema operativo java es complejo ya que java no tiene acceso directo al hardware del sistema.

Se bueno.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar