¿Cómo ejecuto un jar cuando hago doble clic en él?

10

Entonces, hago doble clic en mi archivo jar y simplemente parpadea una ventana con pantalla blanca y luego desaparece. Después de eso, hago clic derecho y selecciono "Abrir con lanzador de jarra", es lo mismo. también. Abrí la Terminal y escribí java -jar "System FRONT.jar" y luego se abrió perfectamente.

¡Quiero que se abra directamente al hacer doble clic en él! ¿Cómo hago eso?

    
pregunta SystemNetworks 24.09.2012 - 13:28

3 respuestas

5

Puede anteponer un script corto a .jar para hacerlo ejecutable a través de un doble clic. En la Terminal haga lo siguiente:

$ cat > header-template <<"EOF"
#!/bin/sh

exec java -jar $0 "$@" > /dev/null

EOF
$ cat header-template "System FRONT.jar" > executable_app
$ chmod +x executable_app

Al hacer doble clic en executable_app ahora debería iniciar la aplicación.

¿Por qué esto funciona en primer lugar? Bueno, un .jar es solo un archivo .zip que se desempaqueta y ejecuta en java. Y el formato zip permite anteponer cosas adicionales frente al archivo real. Cualquier zip unarchiver omite esta parte hasta que encuentra el inicio del archivo (indicado por PK ... ).

    
respondido por el nohillside 24.09.2012 - 14:42
2

La mejor manera de hacer que una aplicación java gui funcione con OSX es empaquetarla como una aplicación. Esto requiere Jar Bundler.app que en Lion está en /usr/share/java/Tools/Jar Bundler.app . Creo que está instalado como parte de Xcode pero parece no estar en la documentación actual de Apple, por lo que podría no ser compatible ahora. La documentación antigua es aquí

Parece que hay tareas ant para hacer esto en appbundler que se documenta en documentación de JavaSE de Oracle .

    
respondido por el Mark 24.09.2012 - 14:17
0

packr

Puede usar packr para empaquetar su jar para una fácil distribución y hacer doble clic para abrir:

  

Empaqueta su JAR, activos y una JVM para su distribución en Windows (ZIP),   Linux (ZIP) y Mac OS X (.app), agregando un archivo ejecutable nativo a   Haz que parezca que la aplicación es una aplicación nativa. Packr es el más adecuado   para aplicaciones GUI, como juegos hechos con libGDX

packr se ha discutido en Hacker News y es un proyecto de código abierto.

    
respondido por el Graham Miln 05.05.2014 - 12:07

Lea otras preguntas en las etiquetas