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 mehrVerwenden 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ösungEDIT: 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