Comment exécuter un bocal lorsque je double-clique dessus?


10

Donc, je double-clique sur mon fichier jar et il fait juste clignoter une fenêtre avec un écran blanc puis il disparaît. Après cela, je fais un clic droit et sélectionne "Ouvrir avec le lanceur de bocal" c'est la même chose. aussi. J'ai ouvert Terminal et tapé java -jar "System FRONT.jar"puis il s'est parfaitement ouvert.

Je veux qu'il soit ouvert directement lorsque vous double-cliquez dessus! Comment je fais ça?


Il ouvre probablement une fenêtre de terminal, termine puis ferme la fenêtre de terminal.
The Unfun Cat

Pour déboguer dans Terminal.app - goto Préférences-> Paramètres choisissez l'onglet Shell et
modifiez l'

Réponses:


5

Vous pouvez ajouter un court script au .jar pour le rendre exécutable via un double clic. Dans Terminal, procédez comme suit:

$ 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

Un double-clic executable_appdevrait maintenant lancer l'application.


Pourquoi cela fonctionne-t-il en premier lieu? Eh bien, un .jar est juste une archive .zip qui est décompressée et exécutée par java. Et le format zip permet d'ajouter des éléments supplémentaires devant l'archive réelle. Tout décompresseur zip ignore cette partie jusqu'à ce qu'il trouve le début de l'archive (indiqué par PK ... ).


2

La meilleure façon de faire fonctionner une application java gui avec OSX est de la regrouper en tant qu'application. Cela nécessite Jar Bundler.app qui sur Lion est à /usr/share/java/Tools/Jar Bundler.app. Je pense qu'il est installé dans le cadre de Xcode, mais ne semble pas figurer dans la documentation actuelle d'Apple, il se peut donc qu'il ne soit plus pris en charge. L'ancienne documentation est ici

Il semble y avoir des tâches ant pour le faire dans appbundler qui est documenté dans la documentation Oracle JavaSE .


En fait, c'est un jeu. Alors, comment puis-je faire double-cliquer dessus et ouvrir mon bocal sans commandes?
SystemNetworks

D'autres utilisateurs la préfèrent en tant qu'application OSX plutôt qu'en tant que .jar. Dans ce cas, vous le faites une fois dans le cadre du processus de génération et les utilisateurs n'ont rien à faire
user151019

0

packr

Vous pouvez utiliser packr pour emballer votre jarpour une distribution facile et double-cliquer pour ouvrir:

Emballe votre JAR, vos ressources et une machine virtuelle Java pour la distribution sur Windows (ZIP), Linux (ZIP) et Mac OS X (.app), en ajoutant un fichier exécutable natif pour le faire apparaître comme si l'application est une application native. Packr est le plus approprié pour les applications GUI, telles que les jeux créés avec libGDX

packr a été discuté sur Hacker News et est un projet open source.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.