Convertir .jar en una app?

Buenas,

mirando cosas varias encontré unos videos en youtube sobre como convertir aplicaciones java .jar en aplicaciones .app de mac.

Los vídeos son estos:

https://www.youtube.com/watch?v=LhoJKhsIc-4

https://www.youtube.com/watch?v=O7q2F1GxA80

https://www.youtube.com/watch?v=dV1K9x_FkAU

Parece realmente fácil, usando un programa que se llama 'jarbundler' pero no puedo abrirlo en mac, es como si me faltara algo pero no sé el que ya que soy nuevo en mac de hace unas semanas.

Imagen

Alguien tiene idea del tema o simplemente porque no se me abre la aplicación jarbundler-2-2-0.jar?
clamatac escribió:Buenas,

mirando cosas varias encontré unos videos en youtube sobre como convertir aplicaciones java .jar en aplicaciones .app de mac.

Los vídeos son estos:

https://www.youtube.com/watch?v=LhoJKhsIc-4

https://www.youtube.com/watch?v=O7q2F1GxA80

https://www.youtube.com/watch?v=dV1K9x_FkAU

Parece realmente fácil, usando un programa que se llama 'jarbundler' pero no puedo abrirlo en mac, es como si me faltara algo pero no sé el que ya que soy nuevo en mac de hace unas semanas.

Imagen


Alguien tiene idea del tema o simplemente porque no se me abre la aplicación jarbundler-2-2-0.jar?


No se te habrá ocurrido abrir la consola para ver posibles mensajes de error ¿verdad? [+risas]
sí se me ha ocurrido pero no he sabido como

como repito, soy nuevo en mac de hace unas semanas
una duda, ¿para que quieres cambiarla de formato si con un .jar también puedes ejecutarla fuera de los mac pero a la inversa no?
minius escribió:una duda, ¿para que quieres cambiarla de formato si con un .jar también puedes ejecutarla fuera de los mac pero a la inversa no?


porque esa jar tal cual no me aparece como app (aunque lo copia en la carpeta de aplicaciones) en el launchpad ni ponerla en el dock en la parte de apps
clamatac escribió:sí se me ha ocurrido pero no he sabido como

como repito, soy nuevo en mac de hace unas semanas

;)

tranqui, es que me ha hecho gracia.

En aplicaciones > utilidades tienes "consola". Mira a ver qué mensaje te da cuando ejecutas ese programa
clamatac escribió:
minius escribió:una duda, ¿para que quieres cambiarla de formato si con un .jar también puedes ejecutarla fuera de los mac pero a la inversa no?


porque esa jar tal cual no me aparece como app (aunque lo copia en la carpeta de aplicaciones) en el launchpad ni ponerla en el dock en la parte de apps


ah entiendo, no te se ayudar porque nunca he programado app java para mac, solo para Windows.
Como mucho las típicas en la carrera que ejecutabas el jar con doble click [sonrisa].
eraser escribió:
clamatac escribió:sí se me ha ocurrido pero no he sabido como

como repito, soy nuevo en mac de hace unas semanas

;)

tranqui, es que me ha hecho gracia.

En aplicaciones > utilidades tienes "consola". Mira a ver qué mensaje te da cuando ejecutas ese programa



vaya, lo acabo de mirar y no sale ningún mensaje
clamatac escribió:
eraser escribió:
clamatac escribió:sí se me ha ocurrido pero no he sabido como

como repito, soy nuevo en mac de hace unas semanas

;)

tranqui, es que me ha hecho gracia.

En aplicaciones > utilidades tienes "consola". Mira a ver qué mensaje te da cuando ejecutas ese programa



vaya, lo acabo de mirar y no sale ningún mensaje


Ejecuta en la consola:
java -jar "Ruta (absoluta o relativa) a tu jar"


El mensaje de error debería aparecerte entonces. Vuelve con él y ya vemos qué está pasando.

Asegúrate de tener la máquina virtual de java instalada con:
java -version
NMo escribió:
clamatac escribió:

vaya, lo acabo de mirar y no sale ningún mensaje


Ejecuta en la consola el terminal:
java -jar "Ruta (absoluta o relativa) a tu jar"


El mensaje de error debería aparecerte entonces. Vuelve con él y ya vemos qué está pasando.

Asegúrate de tener la máquina virtual de java instalada con:
java -version

Te lo corrijo. Como estamos hablando de consola es fácil equivocarse, pero los comandos en el terminal ;)
eraser escribió:Te lo corrijo. Como estamos hablando de consola es fácil equivocarse, pero los comandos en el terminal ;)


Bueno... para mí todo son consolas, en el caso concreto del OS X la app se llama Terminal, pero sigue siendo una consola...
NMo escribió:
eraser escribió:Te lo corrijo. Como estamos hablando de consola es fácil equivocarse, pero los comandos en el terminal ;)


Bueno... para mí todo son consolas, en el caso concreto del OS X la app se llama Terminal, pero sigue siendo una consola...

ya, pero si dice que es novato y no se aclara, mejor ponerlo fácil [oki]
java sí parece estar correctamente instalado

iMac-de-xxxx~ xxxxxl$ java -version
java version "1.6.0_45"
Java(TM) SE Runtime Environment (build 1.6.0_45-b06-451-11M4406)
Java HotSpot(TM) 64-Bit Server VM (build 20.45-b01-451, mixed mode)


el otro comando me da error, y como no sabía si ponerlo con o sin comillas (entiendo que sin) he probado ambos:

iMac-de-xxxx:~ xxx$ java -jar /Users/xxxxx/Downloads/jarbundler-2.2.0/jarbundler-2.2.0.jar
Failed to load Main-Class manifest attribute from
/Users/xxxx/Downloads/jarbundler-2.2.0/jarbundler-2.2.0.jar

iMac-de-xxxx:~ xxx$ java -jar "/Users/xxxx/Downloads/jarbundler-2.2.0/jarbundler-2.2.0.jar"
Failed to load Main-Class manifest attribute from
/Users/xxxx/Downloads/jarbundler-2.2.0/jarbundler-2.2.0.jar



siguiente paso? XD
clamatac escribió:java sí parece estar correctamente instalado

iMac-de-xxxx~ xxxxxl$ java -version
java version "1.6.0_45"
Java(TM) SE Runtime Environment (build 1.6.0_45-b06-451-11M4406)
Java HotSpot(TM) 64-Bit Server VM (build 20.45-b01-451, mixed mode)


el otro comando me da error, y como no sabía si ponerlo con o sin comillas (entiendo que sin) he probado ambos:

iMac-de-xxxx:~ xxx$ java -jar /Users/xxxxx/Downloads/jarbundler-2.2.0/jarbundler-2.2.0.jar
Failed to load Main-Class manifest attribute from
/Users/xxxx/Downloads/jarbundler-2.2.0/jarbundler-2.2.0.jar

iMac-de-xxxx:~ xxx$ java -jar "/Users/xxxx/Downloads/jarbundler-2.2.0/jarbundler-2.2.0.jar"
Failed to load Main-Class manifest attribute from
/Users/xxxx/Downloads/jarbundler-2.2.0/jarbundler-2.2.0.jar



siguiente paso? XD


Un jar no es más que un zip una serie de clases compiladas y recursos.
Entre los recursos incluídos hay uno nombrado por convención MANIFEST.MF en la ruta META-INF/
En ese fichero se incluye información sobre el artefacto (jar en este caso).
Cuando ejecutas un jar, la forma que tiene java de saber de entre todas las clases contenidas, la clase a la que tiene que ir a buscar el punto de entrada (método main()) es mirando una propiedad del MANIFEST.

Ahora bien, el MANIFEST de ese jar no contiene dicha información, he buscado un poco y veo que es porque en realidad eso no es un ejecutable sino una tarea de Ant.

Si quieres generar un .app, quizá haya otros métodos, pero limitándome al contenido del jar, te diría que en el script de build de tu proyecto, ya sea con maven, ant, gradle, ivy o lo que uses, tendrás que incluir la ejecución de la tarea de Ant contenida en jarblunder.

Conclusión: esto está pensado para generar el .app como parte del proceso de build de tu aplicación. No para montar un app a partir del jar de un tercero. Creo que no es lo que buscas.

Probablemente podría llegar a hacer lo que quieres, pero requiere conocimientos sobre el tema. No estoy muy puesto en la generación de app, nunca he tenido la necesidad, pero seguro que hay formas más fáciles de hacerlo, quizá deberías seguir buscando.

Un saludo!

Edito: No había visto los vídeos... tras ver el comienzo del primero, parece ser que existía una app entre las herramientas de desarrollo de OS X llamada "Jar Bundler", pero creo que no tiene nada que ver con el jar que estás utilizando.

Además, de acuerdo con el siguiente enlace, ha desaparecido de las herramientas de desarrollo (http://stackoverflow.com/questions/1537 ... ion-10-8-2)

Edito 2: Aquí tienes un ejemplo sobre cómo utilizar la tarea de Ant para generar el app a partir de un jar existente: http://stackoverflow.com/questions/1491 ... jarbundler

Básicamente se crea un proyecto Ant muy básico que utiliza jarbundle para generar el app. Verás que es bastante simple, crearte un xml copiando el que te ponen ahí y cambiar 4 cosas.

Si sigues adelante con todo y te surge alguna duda, pregunta.

Edito 3: Parece ser que el reemplazo a la app "Jar Bundler" es el appbundler de Oracle: https://java.net/projects/appbundler Pero me temo que la idea es exactamente la misma que el jarbundler, es una tarea de ant.
bufff

para mi no es sencillo, creo que por el momento desistiré que tengo muchas cosas que hacer y no quiero liarla con pruebas de este tipo en las que no me aclaro :(

Gracias por el interés!
clamatac escribió:bufff

para mi no es sencillo, creo que por el momento desistiré que tengo muchas cosas que hacer y no quiero liarla con pruebas de este tipo en las que no me aclaro :(

Gracias por el interés!


Bueno, es más simple de lo que parece, pero aún así hay que pringarse un poco las manos, sí.

Por aquí estamos si lo retomas algún día.

Un saludo!
15 respuestas