Publicado JNIEasy v1.2 añadiendo soporte de Mac OS X
JNIEasy es una librería Java que permite acceder a librerías nativas (DLLs/shared objects/dynamic libraries) programando 100% en Java.
El enfoque llamado Java Native Objects consiste en sincronizar objetos Java con el mundo nativo, por ejemplo un objeto Java puede ser mapeado a un objeto C++ (o una estructura o una unión). Cuando un atributo desde Java es leído/modificado lo es también la versión nativa y viceversa, cuando un método Java es llamado es automáticamente llamado la versión C++ y también es posible desde C/C++ llamar a métodos Java sin usar JNI obteniendo "punteros a funciones Java" desde C/C++. Los objetos Java son POJOs en donde se consiguen mapear los tipos básicos Java tal y como enteros, reales, String y arrays como enteros, reales, cadenas y arrays nativos.
Con la inclusión de Mac OS X 10.4 (Tiger) x86 y el ya existente soporte de Windows y Linux x86 se consigue cubrir cerca del 100% del mercado de ordenadores.
Cambios introducidos en esta versión:
* Soporte de Mac OS X 10.4 (Tiger) y superiores.
* El archivo Ant de ejemplo es ahora mucho más sencillo y verdaderamente multiplataforma, no es necesario ahora ajustar la propiedad basePath en /conf/conf.properties
* El tamaño de JNIEasy.dll y libJNIEasy.so (Linux) ha sido drásticamente reducido.
* Añadidos los métodos JNIEasy.getFeature/setFeature/hasFeature
* Ahora es posible declarar programáticamente la localización (directorio) del archivo con la licencia llamando a JNIEasy.setFeature(String,Object) con "jnieasy.license.dir" como nombre y el path como valor (antes de llamar a JNIEasy.load())
* Eliminada la dependencia de InnowhereUtil.jae y los jars de Xerces (xercesImpl.jar and xml-apis.jar). Ya no son necesarios.
* Eliminada la dependencia de InnowhereException y InnowhereXMLException, ahora JNIEasyException deriva directamente de RuntimeException
* Los métodos Java mapeando métodos nativos ahora pueden ser declarados como "native" sin cuerpo. Un error normal del linker java nos indica que la clase no ha sido "enhanced".
* Añadido el atributo opcional "params" en las declaraciones en XML de métodos y constructores para especificar el método/constructor concreto cuando no es necesaria una configuración de "layout" nativo de los parámetros. Reduce drásticamente el número de elementos XML necesarios. Los XML de los ejemplos han sido actualizados usando esta nueva sintaxis más compacta cuando es posible.
* Solucionado el error: NativeTransaction.setSynchronization no hace nada
LAMEOnJ ha sido actualizado con JNIEasy 1.2, ahora puede acceder al famoso encoder (y decoder) LAME en Windows,Linux y Mac OS X.
JNIEasy es gratuito con fines sin ánimo de lucro. Es posible descargarse una licencia de 5 días que puede renovarse de nuevo sin necesidad de registrarse o dar dato alguno.
¿Qué librerías nativas que faltan en Java sería conveniente acceder desde Java?
Reader Comments