17/03/2008
17/09/2008
11/06/2008
21/02/2008
10/03/2008
26/03/2008
He liberado la versión de JNIEasy 1.2.1
En esta nueva versión se añade soporte para Solaris x86 y se solucionan los problemas de Mac OS X 10.4 (Tiger al menos desde 10.4.5 y Leopard 10.5).
JNIEasy es una librería que permite acceder desde Java a código nativo típicamente C y C++ y viceversa sin JNI en donde a través de técnicas de sincronización transparente se consigue que un objeto Java represente a un objeto clase C++ y viceversa incluyendo atributos y métodos. JNIEasy puede usarse como una alternativa a JNI.
Actualmente JNIEasy se ejecuta en las siguientes de plataformas con procesadores x86: Windows, Linux, Mac OS X y Solaris.
Otros cambios menores son los siguientes:
* JNIEasy.setFeature("java.library.path","path-list")
Permite definir en tiempo de ejecución los directorios en donde buscar las librerías dinámicas. Ya no es necesario apoyarse también en la variable de entorno LD_LIBRARY_PATH o DYLD_LIBRARY_PATH (Mac) sobre todo en el caso de Mac.
Esta propiedad junto con "jnieasy.license.dir" permiten configurar totalmente JNIEasy desde código (no sólo en línea de comandos).
* Añadido al manual el capítulo "7.5 MAPPING NATIVE LEGACY CLASSES" y un ejemplo de código en ManualExamples.Mapping_native_legacy_classes(), en donde se explica como acceder desde Java a una clase C++ ("legacy") sin modificar su código fuente a través de falsos métodos C++
JNIEasy es comercial pero gratuito para fines no comerciales a través de una licencia temporal que puede renovarse cuantas se veces se quiera desde la web.
Etiquetas: j2se, jnieasy, solaris, opensolaris, mac, leopard, windows, linux, nativo
Hola jmarranz.
Tengo una duda. Quizá sea una tontería pero te lo voy a consultar. Aunque existe Jogl, que ya nos suena a todos, ¿sería posible, con tu biblioteca, hacer llamadas más directas a un juego que ya estuviera programado con C/C++, OpenGL y DirectX? Lo digo porque yo ese juego ya lo hice en su momento en una asignatura de la facultad. Por otro lado, con tu biblioteca ¿sería más directo hacer una llamada a una función en C, por ejemplo, de OpenGL, sin necesidad de recurrir a Jogl?
Gracias de antemano por tus respuestas.
Un saludo.
Hola jmarranz,
Yo alguna vez he pensado en usarlo en algún programa no comercial pero me tira para atrás el hecho de tener que renovar la licencia.
¿Habría posibilidad de que lo licenciaras con GPL o algo similar?
Saludos.
jomaveger: ¿sería posible, con tu biblioteca, hacer llamadas más directas a un juego que ya estuviera programado con C/C++, OpenGL y DirectX?
Sí.
Eso sí JNIEasy no es un wrapper Java COM (lo digo por el DirectX) aunque yo creo que no necesitarías un wrapper COM en Java porque me imagino que tu juego como es algo ya hecho utilizará DirectX en un nivel bajo y siempre puede ofrecer una API de mayor nivel sin dependencias a DirectX. OpenGL es diferente porque es una API C en forma de DLL y podría mapearse directamente con JNIEasy.
Lo que puedes hacer es una DLL que exporte aquellos métodos que quieres que sean llamados desde Java, lo puedes hacer cambiando la signatura de los métodos (añadiendo el convencionalismo de llamada standar o C y exportando el método) o bien con métodos nuevos que sean simples wrappers de los métodos originales incluso métodos C++.
En teoría también podrías hacer un executable que via JNI cargara la máquina virtual e invocara un método Java de arranque (no sería mucho JNI), desde Java ya podrías acceder a los métodos/objetos nativos en tu DLL via JNIEasy, de esa manera se obtendría un programa aparentemente nativo. Si me apuras el mismo ejecutable creo que puede ser también cargado como una DLL pero no estoy seguro (y no es una buena práctica).
lolongas: ¿Habría posibilidad de que lo licenciaras con GPL o algo similar?
A corto plazo las respuesta es no. A largo plazo todo es posible.
JNIEasy no es un entretenimiento, hay muchas muchas horas de esfuerzo en un tipo de software raro de narices. Mi modelo de licenciamiento dentro del software clásico comercial de código cerrado es enormemente generoso.
He llegado a ver gente (por usar la vieja técnica "tengo un amigo que") bajarse programas crakeados desde webs peligrosísmas, que ha dado su email a webs que con absoluta seguridad buscaban freir a la gente con spam y troyanos, he visto generar números de licencia para el babylon para buscar una palabra sabiendo que apenas unos minutos después la licencia se invalidaba... Se que parece el discurso de un replicante de Blade Runner pero es real.
A donde quiero llegar: si lo que quieres hacer de verdad le resulta muy útil a alguien (o a ti mismo) no tendrá ningún problema en bajarse una licencia cada 5 días. Y si es extremadamente útil hasta sería capaz de adquirir una licencia sin que tu te enteraras.
a mi JNIeasy siempre me ha parecido una excelente herramienta, estoy un poco deacuerdo con Lolongas, a mi realmente no mi importa si es OS o no, lo que si es que para uso NO comercial se necesite recargar la licencia, me imagino que es posible descargar la licencia automaticamente cada 5 dias sin que el usuario se entere...
Att: Marioko (mm se deslogeo esto otra vez)
Hola jmarranz,
disculpa pero no es lolongas sino logongas.
Respecto a lo que has dicho no acabo de entenderte. Como tu dices te interesa ganar dinero por tu esfuerzo, pero supongo que tambien te interesará que la gente conozca tu herramienta y la use.
El tener que renovar la licencia cada cinco dias yo lo veo una completa incomodidad es casi como una licencia de evaluación.Lo que hace que realmente no lo pueda usar ni para proyectos no comerciales.
Saludos.
Escribe tu comentario