Java - Java Native Interface

 
Vista:

Java Native Interface

Publicado por Almathely Vivas (6 intervenciones) el 18/10/2002 00:49:38
Se creo una clase llamada Phylips en la cual se declaraban un conjunto de metodos nativos, lo cuales estaban programados en C, en principio no se definió ningún paquete para esta clase,pero en vista de que dicha asociación es necesaria para poder instanciar un objeto de ésta clase en cualquier otra, se necesita poder definirle el paquete a la clase Phylips; cuando se hace ésto (definirle la asociación a un paquete con la sentencia "package") el enlace con los métodos nativos se pierde... y la JVM lanza un UnsatisfiedLink Error referenciando específicamente el método nativo que haya querido ejecutar... Sin la sentencia package el programa funciona perfectamente. podrian ayudarme a averiguar que está pasando para poder resolver el problema?
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

RE:Java Native Interface

Publicado por Marco Antonio (56 intervenciones) el 18/10/2002 18:36:31
Consideremos este ejemplo de un método en c++;

JNIEXPORT void JNICALL Java_Frame1_WindowAlwaysOnTop(JNIEnv *env, jclass obj, jint hwnd, jboolean flag)

De aqui te puedo decir que es unmetodo WindowAlwaysOnTop dentro de una clase Frame1, ahora si clase perteneciera al paquete "nuevos" seria de la siguiente forma:

Java_nuevos_Frame1_WindowAlwaysOnTop

Conclusion siempre se debe anteponer al nombre del metodo nativo la clase y a este el (los) paquetes. por lo tanto tienes que cambiar la definision de los metosdos existentes.

Otro ejemplo:
Java_com_nuevos_Frame1_WindowAlwaysOnTop

Atte,
Marco Antonio
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

RE:Java Native Interface

Publicado por Almathely Vivas (6 intervenciones) el 18/10/2002 21:08:13
Gracias... Yo habia sospechado que era eso, pero como el archivo punto H generado de la clase Java no hacia esos cambios pense que no era necesario... Muchas gracias

Atte.
Almathely
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