11 votes

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

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 clique avec le bouton droit de la souris et je sélectionne "Ouvrir avec le lanceur de bocaux", et c'est pareil. J'ai ouvert le Terminal et j'ai tapé java -jar "System FRONT.jar" puis il s'est ouvert parfaitement.

Je veux qu'il s'ouvre directement en double-cliquant dessus ! Comment faire ?

8voto

nohillside Points 82672

Vous pouvez ajouter un court script au .jar pour le rendre exécutable par double-clic. Dans le Terminal, faites ce qui 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

Double-clic sur executable_app devrait 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 avant l'archive elle-même. Tout désarchiveur de zip saute cette partie jusqu'à ce qu'il trouve le début de l'archive (indiqué par le symbole PK... ).

2voto

yoliho Points 340

La meilleure façon de faire fonctionner une application gui java avec OSX est de la regrouper en tant qu'application. Cela nécessite Jar Bundler.app qui, sur Lion, se trouve à l'adresse /usr/share/java/Tools/Jar Bundler.app . Je pense qu'il est installé en tant que partie de Xcode, mais il ne semble pas être dans la documentation actuelle d'Apple, donc il se peut qu'il ne soit pas supporté maintenant. L'ancienne documentation est aquí

Il semble qu'il y ait des tâches de fourmi pour faire cela dans appbundler qui est documenté dans le Documentation Oracle JavaSE .

2voto

傅继晗 Points 143

Après de longs efforts, j'ai finalement trouvé la solution, à savoir créer votre propre application Jar Launcher :

  1. Lancer Automator pour faire une action rapide Automator

    enter image description here

  2. Sélectionnez l'application

  3. Recherchez l'action Run Shell script avec Filter Finder Items et ajoutez-la sur la droite. la droite.

  4. collez scripts ici comme ceci ci-dessous :

    enter image description here Je fais quelques changements pour l'améliorer

    export JAVA_HOME=/usr/libexec/java_home -v 1.8 cd "$(dirname "$@")" java -jar "$@"

  5. sauvegarder cette action rapide comme une application, par exemple "open jar.app".

  6. allez dans /System/Library/CoreServices/Jar Launcher.app/Contents/Resources et copiez JarLauncher.icns enter image description here

  7. cd à "open jar.app" que vous venez de créer et collez JarLauncher.icns à "ouvrir jar.app/Contenu/Ressources".

  8. éditez "open jar.app/Contents/Info.plist" et changez la clé (AutomatorApplet en JarLauncher.icns) :

    <key>CFBundleIconFile</key>
    <string>JarLauncher.icns</string>

enter image description here

  1. maintenant vous pouvez choisir d'ouvrir avec "open jar.app" comme avant. enter image description here

0voto

Graham Miln Points 39606

Packr

Vous pouvez utiliser packr pour emballer votre jar pour une distribution facile et un double-clic pour l'ouvrir :

Empaquete votre JAR, vos actifs et une JVM pour une distribution sous Windows (ZIP), Linux (ZIP) et Mac OS X (.app), en y ajoutant un fichier exécutable natif pour pour faire croire que l'application est une application native. Packr est particulièrement adapté pour les applications GUI, comme les jeux réalisés avec libGDX.

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

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X