2013-08-01 7 views
1

Je sais JarBundler n'est plus développé et ne fonctionne pas avec 1.7 (link) et à partir du même site j'ai trouvé AppBundler qui produit des fichiers .app de pots.Comment emballer un pot pour OSX?

Je trouve here que le contenu de ces pots-apps sont les mêmes, alors je l'ai suggéré que la personne et seulement remplacé le fichier jar à l'intérieur Contents/Java (ou Contents/Resources/Java dans le vieux pot Bundler), et il fonctionne. Je pourrais continuer à utiliser AppBundler, mais je préférerais ne pas avoir besoin d'une dépendance/plugin supplémentaire pour Ant.

De toute façon, quand je l'automatise avec Ant - le .app ne s'ouvre pas. Je rétréci à ceci:

  • A .app produite à partir AppBundler
  • Si je copier et la coller dans un autre, il lance
  • Si je copier et la coller avec Ant, il ne se lance pas

J'ai même essayé des choses comme clearing my application state cache, sans chance. Encore une fois, la chose étrange est que si je copie moi-même l '"application source", la copie se lance. Si je copie l'application source avec Ant (et je ne fais rien d'autre), ce n'est pas le cas.

Voici mon extrait Ant (.app ne sont que les dossiers AFAIK) (dist.macapp est le nom du .app):

<copy todir="${dist.dir}" > 
    <fileset dir="${resources.dir}"> 
     <include name="${dist.macapp}/**" /> 
    </fileset> 
</copy> 

Je suppose que j'ai deux questions:

  1. Pourquoi ISN 't ce travail (je pense que j'ai fourni assez ce que j'ai essayé: P)
  2. Y at-il une meilleure façon de le faire (J ava Web Start est hors de question, peut-être que je vais examiner plus tard)

Répondre

1

Un fichier .app sur Mac est simplement une mise en page de dossier standardisée. Vous pouvez toujours le regrouper avec un script. Le simple remplacement du fichier jar n'est pas suffisant.

Faire quelque chose comme ça

Contents/ 
    Java/yourjar.jar 
    info.plist /* specific to your application! maybe make a template then find and replace strings */ 
    MacOS/JavaApplicationStub 

Copiez le fichier exécutable /System/Library/Frameworks/JavaVM.framework/Resources/MacOS/JavaApplicationStub dans le dossier MacOS (ce qui est app pas spécifique et peut être fait une fois).

Je ne suis pas sûr du format de l'info.plist spécifique à Java.

+0

C'est ce que je dis. J'essaye cela mais il ne se lance pas si je le copie en utilisant Ant (mais c'est le cas si je le fais manuellement). – Raekye

+0

Quant à "remplacer le pot", je ne suis pas sûr de ce que vous voulez dire que ce n'est pas assez. Pour clarifier, j'ai déjà généré un 'info.plist' spécifique à l'application. Et ** la seule chose que je fais est de copier et coller **, et cela fonctionne manuellement mais pas avec Ant (c'est le premier problème que j'ai besoin de résoudre) – Raekye

+0

@Raekye Remplacer le yourjar.jar dans mon exemple. Qu'en est-il du dossier MacOS, est-ce que cela a un JavaApplicationStub ou un script équivalent? –

Questions connexes