Konvertieren Sie Java in eine .app-Datei für MacOSX mit JarBundler

Ich versuche nur, ein einfaches Java-Programm in eine macOSX .app-Datei zu konvertieren, damit ich es als einfache ausführbare Datei verteilen kann.

Ich habe überall gelesen und alle sagen dasselbe:

Xcode verwenden - Soweit ich das beurteilen kann, unterstützt Xcode Java Builds nicht mehr

Verwenden Sie Jar Bundler - Alle Tutorials scheinen veraltet zu sein, und es funktioniert nicht. Wenn ich starte: java -jar jarbundler-2.0.0.jar

Die Konsole gibt "kein Hauptmanifestattribut in jarbundler-2.0.0.jar" zurück

Wenn ich recht habe, wäre dies ein Fehler für denjenigen, der die JAR-Datei gepackt hat, oder? Ich habe versucht, es von anderen Websites und anderen Versionen herunterzuladen, erhalte aber das Gleiche.

Sie sagen, Sie können die Verzeichnisse und Dateien einfach selbst erstellen und dann Ihren Ordner in .app umbenennen und dann einen Befehl darauf ausführen oder so, aber das ist kompliziert, da ich nicht genau weiß, wie man eine info.plist-Datei erstellt ... Wenn Sie es so machen möchten, ist die beste Website, die ich bisher gefunden habe, die folgende:Java-Bereitstellungsoptionen für OSX

Ich habe meinen Code in eine .jar-Datei kompiliert, ich habe ein Symbol und alles, was ich tun muss, ist es irgendwie in eine .app-Datei zu packen.

Vielen Dank für die Hilfe im Voraus!

Lösung

EDIT: Ich habe es verstanden! Nach 7 oder 8 Stunden Suchen und Lesen funktioniert es. Da ich neu in diesem Bereich bin, werde ich alles veröffentlichen, was ich gelernt habe, um andere, die auf dasselbe Problem stoßen, davor zu bewahren, durch die Schmerzen zu gehen. Ich gab die Do-it-yourself-Methode auf und kehrte zu JarBundler zurück. Wenn jemand dies liest und nichts über ANT weiß, habe ich Folgendes getan: Laden Sie JarBundler herunter, ich habe meins von hier:Mac OS X JarBundler ANT Task und befolgen Sie die Anweisungen dort.

Wenn Sie es herunterladen, fügen Sie die jarbundler-2.2.0.jar-Datei hier ein:

/ usr / share / ant / lib

Möglicherweise müssen Sie einen Befehl ausführen, um ihn zu verschieben.

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

wie gesagt, ich lerne noch, aber das hat bei mir funktioniert.

Stellen Sie sicher, dass Sie den richtigen Jarbundler verschoben haben. Hier sind Probleme aufgetreten. Ich habe den gesamten Ordner und nicht die innere .jar-Datei verschoben. Stellen Sie also sicher, dass Sie die .jar-Datei verschieben, die sich in dem heruntergeladenen Zip-Ordner befindet, und nicht die gesamte Datei Andernfalls wird beim Erstellen eine Fehlermeldung ausgegeben, die ungefähr wie folgt lautet: taskdef class net.sourceforge.jarbundler.JarBundler konnte nicht gefunden werden.

Dann müssen Sie Ihren Code in eine .jar-Datei kompilieren (es gibt zwei Arten, eine ist wie eine .zip-Datei und die andere ist eine ausführbare Datei). Sie möchten eine normale JAR-Datei, die NICHT ausführbar ist. Dazu müssen Sie zuerst kompilieren Geben Sie Ihren Code ein, um .class-Dateien abzurufen, öffnen Sie eine Eingabeaufforderung und folgen Sie den Anweisungen hier:Erstellen Sie eine Jar-Datei Der Befehl sieht ungefähr so ​​aus:

jar cf myName.jar * .class

Sobald Sie Ihre JAR-Datei haben, müssen Sie im selben Ordner eine XML-Datei erstellen, die build.xml heißt. Bearbeiten Sie es mit einem Texteditor. Folgen Sie den Anweisungen auf dem Link oben, um es zu erstellen. Es wird ungefähr so ​​aussehen:

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

Von dort aus (ich benutze übrigens ein Macbook Pro) müssen Sie lediglich eine Befehlszeile in diesem Ordner ausführen:

Ameisenbündel

und es sollte eine .app-Datei in einem Ordner namens release erstellen. Fassen wir zusammen: Alles, was Sie brauchen, ist Ihre .jar-Datei und build.xml-Datei im selben Ordner und führen dann den Befehl aus: ant bundle (oder was auch immer Sie Ihr Ziel in der build.xml-Datei genannt haben, ich habe es bundle genannt)

Viel Glück, hoffe das hilft jemandem da draußen.

Wenn sich jemand wundert, habe ich die vom JarBundler erzeugte Info.plist genommen und in das von mir erstellte Verzeichnis gestellt, und es hat funktioniert! Das war also das Problem, ich wusste einfach nicht, wie ich es richtig formatieren sollte ... hier ist es:Info.plist

Antworten auf die Frage(3)

Ihre Antwort auf die Frage