Uso de la interfaz JNI
Más allá de la forma de la interfaz JNI, debe considerar cómo utilizan JNI las bibliotecas nativas en un sistema de 64 bits.
Hay una serie de cuestiones a tener en cuenta:
- En algunos sistemas de 64 bits, determinados objetos nativos que se pasan a través de JNI son de 64 bits, mientras que son de 31 bits en sistemas de 31 bits equivalentes. Los ejemplos de este tipo de objetos son Descriptores de sockets y Descriptores de archivos.
- Pasar objetos de 64 bits por la JNI no es un problema. Sin embargo, en muchos casos, estos objetos se almacenan en campos de objeto Java™ . La implicación es que el tipo de estos campos de objeto cambia en un sistema de 64 bits en comparación con los sistemas de 31 bits existentes. Debe cambiar el código Java para conseguirlo.
- Si el tamaño de un campo de objeto Java es diferente en la plataforma de 64 bits de la plataforma de 31 bits , cualquier código nativo que esté trabajando con ese campo de objeto debe cambiarse para reflejar la diferencia de tamaño cuando el código se porta de 31 bits a 64 bits. Puede tratar mejor con esto teniendo una descripción completa de cada uno de los tipos de objeto Java que se ven afectados de esta forma. Si el código de aplicación almacena "datos nativos" en objetos Java, debe modificar el código Java para asegurarse de que hay suficiente espacio en los objetos Java para almacenar todos los datos nativos.