Convertir Java en.fichier d'application pour MacOSX à l'aide de JarBundler


Tout ce que j'essaie de faire est de convertir un simple programme java en MacOSX .fichier d'application afin que je puisse le distribuer comme un simple fichier exécutable.

J'ai lu partout et tout le monde dit les mêmes choses:

  1. Utilisez Xcode-Pour autant que je sache, Xcode ne prend plus en charge les builds Java
  2. Utilisez Jar Bundler - Tous les tutoriels semblent être obsolètes, et cela ne fonctionne pas. Quand je le lance: java-jar jarbundler-2.0.0.jar

    La console renvoie " aucun manifeste principal attribut dans jarbundler-2.0.0.jar "

    Si j'ai raison, ce serait un échec pour celui qui a emballé le fichier jar non? Mais j'ai essayé de le télécharger à partir d'autres sites web et d'autres versions, mais j'obtiens la même chose.

  3. Ils disent que vous pouvez simplement créer les répertoires et les fichiers vous-même, puis renommez votre dossier .app, puis exécutez une commande dessus ou quelque chose, mais c'est compliqué car je ne sais pas exactement comment créer une information.fichier plist...si vous voulez faire de cette façon, le meilleur site Web que j'ai trouvé jusqu'à présent est celui - ci: Options de déploiement Java pour OSX

J'ai compilé mon code dans un .fichier jar, j'ai une icône et tout, tout ce que je dois faire est de l'empaqueter en quelque sorte dans un .app fichier.

Merci pour l'aide à l'avance!

Solution

EDIT: Je l'ai eu! Après 7 ou 8 heures de recherche et de lecture, cela fonctionne. Puisque je suis nouveau dans ce domaine, je vais poster tout ce que j'ai appris pour sauver les autres qui rencontrent le même problème de passer par la douleur. J'ai abandonné la méthode do it yourself et je suis retourné à JarBundler. Si quelqu'un d'autre lit ceci et qu'il ne sait rien sur ANT, voici ce que j'ai fait: Téléchargez JarBundler, j'ai le mien d'ici: Mac OS X JarBundler ANT Task et suivez les instructions là-bas.

Lorsque vous le téléchargez, mettez le jarbundler-2.2.0.fichier jar ici:

/usr/share/ant/lib

Vous devrez peut-être exécuter une commande pour le déplacer, quelque chose comme:

Sudo mv jarbundler-2.2.0.pot ~/../../usr / share / ant/lib / jarbundler-2.2.0.jar

Comme je l'ai dit, j'apprends encore, mais cela a fonctionné pour moi.

Assurez-vous que vous avez déplacé le bon jarbundler, c'est là que j'ai rencontré des problèmes, j'ai déplacé tout le dossier, plutôt que l'intérieur .fichier jar, alors assurez-vous de déplacer le .jar qui est à l'intérieur du dossier zip que vous avez téléchargé, pas le tout, sinon lorsque vous allez le construire, vous obtiendrez une erreur disant quelque chose comme error: taskdef class net.sourceforge.jarbundler.JarBundler n'a pas pu être trouvé.

Ensuite, vous devez compiler votre code dans un .fichier jar (il existe deux types, l'un est comme un.zip et l'autre est un exécutable) Vous voulez un fichier JAR normal, PAS exécutable, donc pour ce faire, vous devez d'abord compiler votre code pour obtenir .class files, puis ouvrez une invite de commande et suivez les instructions ici: Créer un fichier Jar La commande ressemblera à ceci:

Jar cf monnom.pot *.classe

Une fois vous avez votre fichier jar, vous devez créer un .fichier XML dans le même dossier et doit être appelé build.XML. L'éditer avec un éditeur de texte. Suivez les instructions sur le lien ci-dessus pour le créer. Il ressemblera à quelque chose comme ceci:

//build.xml

<project name="MyProject">

<taskdef name="jarbundler"
classname="net.sourceforge.jarbundler.JarBundler" />

<target name="bundle">

<jarbundler dir="release"
        name="Apollo's Image Editor"
        mainclass="ImageEditorGUI" 
        jar="ApolloIE.jar"
        icon="Aperture.icns" />

</target>

</project>

À partir de là (j'utilise un Macbook Pro en passant) tout ce que vous avez à faire est d'exécuter une ligne de commande à partir de ce dossier:

Paquet de fourmis

Et il devrait créer un .application fichier dans un dossier appelé la libération. Donc, pour résumer: tous vous avez besoin est votre .fichier jar et construire.xml fichier dans le même dossier, puis exécutez la commande: ant bundle (ou tout ce que vous avez nommé votre cible dans la construction.fichier xml, je l'ai nommé bundle)

Bonne chance, j'espère que cela aide n'importe qui là-bas.

Si quelqu'un se demande, j'ai pris l'info.plist qui a été généré par le JarBundler et l'a mis dans le répertoire que je faisais et cela a fonctionné! C'était donc le problème, je ne savais tout simplement pas comment le formater correctement... le voici: Info.plist

Author: Deduplicator, 2013-02-17

3 answers

Sous Mac OS X, un application bundle est un répertoire dont le nom se termine par .app et qui contient les ressources utilisées par l'application. Ce jeu est un exemple qui construit le bundle in situ à l'aide d'un ant script de compilation. Des références supplémentaires sont citées ici.

 2
Author: trashgod, 2017-05-23 12:01:49

Si vous souhaitez utiliser Oracle Java au lieu de Java abandonné d'Apple, vous devez utiliser Java Application Bundler au lieu de JarBundler.

Voir aussi ces réponses:

 1
Author: imgx64, 2017-05-23 12:33:47

A travaillé pour moi! Pour une raison quelconque, je ne pouvais pas mettre le fichier jarbundler .jar dans la zone Ant, mais je devais plutôt le pointer explicitement à partir de la construction.xml (je l'ai mis dans <projectRoot>/jarbundler/jarbundler-2.2.0.jar). Mon build.xml ressemblait à:

<?xml version="1.0" encoding="UTF-8"?>
<project name="TripleWhammy" default="default" basedir=".">        
    <taskdef name="jarbundler"
             classname="net.sourceforge.jarbundler.JarBundler"
             classpath="jarbundler/jarbundler-2.2.0.jar" />

    <target name="bundle">
        <jarbundler dir="."
                    name="Triple Whammy"
                    mainclass="org.bigclue.TripleWhammy"
                    jar="target/triple-whammy-1.0-jar-with-dependencies.jar"
                    icon="triple-whammy.icns"/>
    </target>
</project>

Cela a créé "Triple Whammy.app" dans mon répertoire de projet. Mon icône semble bon. Doux.

Maintenant que j'ai construit un simple dé distribuable .app, il est temps de construire quelque chose de génial...

(Mac OS X 10.6.8, Java 1.6.0_51, Ant 1.8.4; construit mon .jar utilisant Maven 3.0.4 et son plugin "assembly" version 2.4).

 0
Author: user2803179, 2013-09-22 00:46:20