Converti Java in.file app per MacOSX utilizzando JarBundler


Tutto quello che sto cercando di fare è convertire un semplice programma java in un MacOSX .app file in modo da poterlo distribuire come un semplice file eseguibile.

Ho letto dappertutto e tutti dicono le stesse cose:

  1. Usa Xcode - Per quanto posso dire, Xcode non supporta più le build Java
  2. Usa Jar Bundler: Tutti i tutorial sembrano non aggiornati e non funziona. Quando corro: java-jar jarbundler-2.0.0.vaso

    La console restituisce " nessun manifesto principale attributo in jarbundler-2.0.0.vaso"

    Se ho ragione, questo sarebbe un errore su chi ha impacchettato il file jar giusto? Ma ho provato a scaricarlo da altri siti web e altre versioni, ma ottengo la stessa cosa.

  3. Dicono che puoi semplicemente creare le directory e i file da solo e quindi rinominare la tua cartella in .app e quindi eseguire un comando su di esso o qualcosa del genere, ma questo è complicato dal momento che non so esattamente come creare un'informazione.file plist...se vuoi farlo in questo modo, il miglior sito web che ho trovato finora è questo: Opzioni di distribuzione Java per OSX

Ho compilato il mio codice in un .file jar, ho un'icona e tutto, tutto quello che devo fare è impacchettarlo in qualche modo in un .file app.

Grazie per l'aiuto in anticipo!

Soluzione

MODIFICA: Ho capito! Dopo 7 o 8 ore di ricerca e lettura funziona. Dal momento che sono nuovo di questo, ho intenzione di pubblicare tutto ciò che ho imparato per salvare gli altri che si imbattono nello stesso problema dal passare attraverso il dolore. Ho rinunciato al metodo fai da te e sono tornato a JarBundler. Se qualcun altro sta leggendo questo e non sanno nulla di ANT, ecco cosa ho fatto: Scarica JarBundler, ho ottenuto il mio da qui: Mac OS X JarBundler ANT Task e segui le istruzioni lì.

Quando lo scarichi, metti il jarbundler-2.2.0.file jar qui:

/ usr / share/ant / lib

Potrebbe essere necessario eseguire un comando per spostarlo, qualcosa del tipo:

Sudo mv jarbundler-2.2.0.vaso ~/../../usr / condividere / ant / lib / jarbundler-2.2.0.vaso

Come ho detto, sto ancora imparando, ma questo ha funzionato per me.

Assicurati di aver spostato il jarbundler giusto, questo è dove mi sono imbattuto in problemi, ho spostato l'intera cartella, piuttosto che l'interno .file jar, quindi assicuratevi di spostare il.jar che è all'interno della cartella zip che hai scaricato, non il tutto, altrimenti quando vai a costruirlo, riceverai un errore che dice qualcosa come error: taskdef class Net.sourceforge.jarbundler.JarBundler non è stato trovato.

Quindi è necessario compilare il codice in un .file jar (ci sono due tipi, uno è come un .zip e l'altro è un eseguibile) Vuoi un normale file JAR, NON eseguibile, quindi per farlo devi prima compilare il tuo codice per ottenere .file di classe, quindi aprire un prompt dei comandi e seguire le istruzioni qui: Creare un file Jar Il comando sarà simile a questo:

Jar cf myName.vaso *.classe

Una volta hai il tuo file jar, è necessario creare un .file xml nella stessa cartella e deve essere chiamato build.XML. Modificalo con un editor di testo. Seguire le istruzioni sul link qui sopra per crearlo. Sarà simile a questo:

//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>

Da lì (sto usando un Macbook Pro a proposito) tutto ciò che devi fare è eseguire una riga di comando da quella cartella:

Fascio formica

E dovrebbe creare un .file app in una cartella chiamata release. Quindi per riassumere: tutto ciò che serve è il vostro .file jar e costruire.file xml nella stessa cartella, quindi eseguire il comando: ant bundle (o qualunque cosa tu abbia chiamato il tuo obiettivo nella build.file xml, l'ho chiamato bundle)

Buona fortuna, spero che questo aiuti chiunque là fuori.

Se qualcuno si sta chiedendo, ho preso le informazioni.plist che è stato generato dal JarBundler e messo nella directory che stavo facendo e ha funzionato! Quindi questo era il problema, non sapevo come formattarlo correttamente... eccolo qui: Info.plist

Author: Deduplicator, 2013-02-17

3 answers

In Mac OS X, un pacchetto di applicazioni è una directory con un nome che termina con .app e che contiene le risorse utilizzate dall'applicazione. Questo gioco è un esempio che costruisce il bundle in situ utilizzando un ant crea script. Ulteriori riferimenti sono citati qui .

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

Se si desidera utilizzare Oracle Java invece di Java interrotto di Apple, è necessario utilizzare Java Application Bundler invece di JarBundler.

Vedi anche queste risposte:

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

Ha funzionato per me! Per qualche ragione non ho potuto mettere il file jarbundler .jar nell'area Ant, ma invece ho dovuto puntarlo esplicitamente dalla build.xml (l'ho messo in <projectRoot>/jarbundler/jarbundler-2.2.0.jar). La mia corporatura.xml era simile a:

<?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>

Questo ha creato " Triple Whammy.app " nella directory del mio progetto. La mia icona sembra buona. Dolce.

Ora che ho costruito un semplice dado distribuibile .app, è ora di costruire qualcosa di fantastico...

(Mac OS X 10.6.8, Java 1.6.0_51, Formica 1.8.4; costruito il mio .vaso usando Maven 3.0.4 e il suo plugin "assembly" versione 2.4).

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