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

10

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

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

SystemNetworks
fuente
Probablemente abre una ventana de terminal, termina y luego cierra la ventana de terminal.
The Unfun Cat
Para depurar en Terminal.app - vaya a Preferencias-> Configuración, elija la pestaña Shell y modifique la opción "Cuando sale el Shell", entonces el terminal permanecerá abierto
user151019

Respuestas:

5

Puede anteponer una secuencia de comandos corta al .jar para que sea ejecutable haciendo doble clic. En la Terminal haz 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

Hacer doble clic executable_appahora debería iniciar la aplicación.


¿Por qué funciona esto en primer lugar? Bueno, un .jar es solo un archivo .zip que java descomprime y ejecuta. 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 ... ).

nohillside
fuente
2

La mejor manera de hacer que una aplicación Java GUI funcione con OSX es agruparla como una aplicación. Esto requiere Jar Bundler.app, que está en Lion /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 es posible que ahora no sea compatible. La documentación anterior está aquí.

Parece que hay tareas de hormigas para hacer esto en appbundler que está documentado en la documentación de Oracle JavaSE .

usuario151019
fuente
En realidad es un juego. Entonces, ¿cómo hago para que la gente haga doble clic en él y abra mi jarra sin comandos?
SystemNetworks
Otros usuarios lo preferirán como una aplicación OSX en lugar de solo un .jar. En este caso, lo hace una vez como parte del proceso de compilación y los usuarios no tienen que hacer nada
user151019
0

empacador

Puede usar packr para empaquetar su jardistribución fácil 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 para que parezca que la aplicación es nativa. Packr es más adecuado para aplicaciones GUI, como juegos hechos con libGDX

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

Graham Miln
fuente