Encuesta

¿Qué piensas de la adquisición de Sun por parte de Oracle?

30-06-2009 - 177 votos

Destacados Agenda

Más eventos |

Publicado JNIEasy v1.2 añadiendo soporte de Mac OS X

22/01/2008 20:38 jmarranz

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?

Volver a actualidad

Etiquetas: j2se, jnieasy, c, nativo, jno, macosx, linux, windows, lameonj

Comentarios: 7

  • abraham 23/01/2008 10:27

    ¿Por qué no haces disponible esta librería también bajo la licencia AGPL, como isNat?

  • jmarranz 23/01/2008 13:13

    Pues dependerá de cómo se comporte ItsNat

     

  • Marioko 23/01/2008 15:25

    de acuerdo con Abrahan, esta es una excelente libreria, yo pienso que si no la puedes o quieres  hacer AGPL podrias siquiera a la version Gratis para Uso No Comercial, no pedir la licencia cada 5 dias.

    Yo he probado muchas librerias para acceder a la parte nativa desde java, y esta es la que mejor me ha parecido, es mucho mas natural, 100% java y facil de usar.

  • greeneyed 24/01/2008 23:47

    Hola,

    Me he inventado el texto de la noticia para el newsletter de JavaTools @ java.net:

    Innowhere Software Services S.L. has announced a new release of JNIEasy, their library to create Java Native Objects (JNO): JNI based in Java POJOs.
    This new release includes support for Mac OS X 10.4 (Tiger) and upper and many other things as you can see in the release notes (aqui enlazado)

    Si quieres cambiar algo, avisa ;). Espero que ayude en algo. Queda un poco raro lo de tener el sitio en el puerto 8080, ¿lo tienes así a posta? Mas que nada por que he visto proxies de empresas que no dejan acceder a nada que no sea el 80 o el 443.

    S!

  • jmarranz 25/01/2008 09:17

     

    Gracias greeneyed por la noticia, antes solía yo enviar la noticia a java.net directamente a un apartado de anuncios hasta que el editor jefe (se me olvidó su nombre) más o menos dijo que se acabó que era mucho trabajo, bueno eso no lo dijo pero es verdad :)

    Yo añadiría algo así como "and upper ... in addition to the current support of Windows and Linux", por lo demás perfecto.

    En el enlace puedes poner la dirección principal antes de redireccionar:

    http://www.innowhere.com

    Respecto al tema del puerto 8080 es la jodienda del Apache, mi hosting es compartido y no necesito más, se que está el "forwarding" de los .jsp pero eso no ocurre con los servlets (se puede pero en plan a medida) y las imágenes, css etc tendrían que estar fuera de los war lo cual es una jodienda con perdón.

    Hay quienes lo que hacen es hacer su web normal en PHP y sus servicios Java en el Tomcat via 8080, pero lo que me jode del PHP es que no tiene un sistema de deployment tan elegante como el sistema war y tienes que andar eliminando archivos para subirlos de nuevo y al final se te acaban olvidando o acabas subiéndolo todo. Y todo por quitar un :8080 que es pura estética. Si alguien tiene una idea mejor que la cuente, aunque la mejor de todas es quitar Apache pues a día de hoy Tomcat tiene un componente de Apache que hace que tenga un rendimiento similar también para contenido estático.

    Respecto a los firewalls soy consciente de que hay mucho paranoico por ahí como si hubiera algún problema en que un virus no pudiera entrar y/o robar información por el puerto 80, pero en fin la paranoia es lo que tiene (luego seguro que te encuentras con que el mismo ordenador capado no tiene un antivirus decente instalado).

     

  • greeneyed 25/01/2008 19:48

    Añadido el comentario. Si, la seccion de noticias quedó "abandonada" ya que no habia nadie asignado para llevarla y el editor jefe se cansó de hacer trabajo extra que al fin y al cabo era algo reduntante.

    De todas formas, puedes enviarme las noticias a mi cuando saques una nueva version o similar. Otra forma de publicidad es solicitar ser un proyecto "enlazado" a la comunidad, no hace falta estar hospedado en java.net, para constar en el directorio de proyectos, etc. Además si estás ahí puedes enviarnos de vez en cuando trucos/pequeños ejemplos de como usar el proyecto para que los publiquemos en el newsletter. No es como salir en el NY Times pero hay gente que nos lee :).

    Eso mismo va para todos los proyectos OS que hagais cualquiera en la comunidad, que de vez en cuando lo menciono pero practicamente nadie lo aprovecha.

    OT: Si, lo del hosting con Apache/Tomcat es una p****. Con lo facil que es hacer un mod_proxy de todo un directorio y despreocuparse...en fin. Yo lo que hice es guardar las imagenes y css en un directorio con el mismo nombre en la rama www, y "enmascarar" los enlaces a .jsp y demas bajo el sufijo .do, y como ese SI lo tienen redireccionado... pues funcionaba, aunque era algo coñazo lo de separar las css e imagenes por otro lado. De todas formas, yo dejaré lo del hosting compartido, por que dejare el hosting, ya que cada 2x3 se caen por falta de memoria y queda fatal. En fin. Como lo mio es "por amor al arte" no voy a pagar un host virtual completo, que es lo más fiable.

  • Anónimo 28/01/2008 16:55

    Publicado:

    https://javatools.dev.java.net/newsletter/2008/20080124.html#news_about_tools

    GE

Escribe tu comentario

Sun Microsystem Logo NHT-Norwick Logo

© 2002-2007 Asociación javaHispano