Konwertuj Javę do pliku .app dla MacOSX za pomocą JarBundler

Wszystko, co próbuję zrobić, to przekonwertować prosty program Java na plik .app macOSX, aby móc go rozpowszechniać jako prosty plik wykonywalny.

Czytałem w każdym miejscu i wszyscy mówią to samo:

Użyj Xcode - o ile wiem, Xcode nie obsługuje już kompilacji Java

Użyj Jar Bundler - Wszystkie tutoriale wydają się być nieaktualne i nie działają. Kiedy uruchamiam: java -jar jarbundler-2.0.0.jar

Konsola zwraca „brak głównego atrybutu manifestu w jarbundler-2.0.0.jar”

Jeśli mam rację, to byłoby nieudane, gdyby ktoś spakował akta w słoiku? Ale próbowałem go pobrać z innych stron i innych wersji, ale dostaję to samo.

Mówią, że możesz samodzielnie tworzyć katalogi i pliki, a następnie zmieniać nazwę folderu na .app, a następnie uruchamiać na nim polecenie lub coś, ale jest to skomplikowane, ponieważ nie wiem dokładnie, jak utworzyć plik info.plist ... jeśli chcesz to zrobić w ten sposób, najlepszą stroną, jaką do tej pory znalazłem, jest ta:Opcje wdrażania Java dla OSX

Skompilowałem mój kod do pliku .jar, mam ikonę i wszystko, wszystko, co muszę zrobić, to jakoś spakować ją do pliku .app.

Dziękujemy za pomoc z góry!

Rozwiązanie

EDIT: Mam to! Po 7 lub 8 godzinach wyszukiwania i czytania działa. Ponieważ jestem nowy w tym temacie, zamierzam opublikować wszystko, czego się nauczyłem, aby uratować innych, którzy borykają się z tym samym problemem, z powodu bólu. Zrezygnowałem z metody zrób to sam i wróciłem do JarBundlera. Jeśli ktoś czyta to i nie wie nic o ANT, oto co zrobiłem: Pobierz JarBundler, dostałem się stąd:Mac OS X JarBundler ANT Task i postępuj zgodnie z instrukcjami tam.

Po pobraniu umieść tutaj plik jarbundler-2.2.0.jar:

/ usr / share / ant / lib

być może będziesz musiał uruchomić polecenie, aby je przenieść, coś w stylu:

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

jak powiedziałem, wciąż się uczę, ale to zadziałało dla mnie.

Upewnij się, że przeniósłeś odpowiedni jarbundler, to jest miejsce, w którym wpadłem w kłopoty, przenieśliśmy cały folder, a nie wewnętrzny plik .jar, więc upewnij się, że przenosisz plik .jar, który znajduje się w pobranym zipie folderze, nie całą , w przeciwnym razie po przejściu do budowania otrzymasz komunikat o błędzie mówiący o błędzie: klasa taskdef net.sourceforge.jarbundler.JarBundler nie została znaleziona.

Następnie musisz skompilować swój kod do pliku .jar (są dwa typy, jeden jest jak .zip, a drugi to plik wykonywalny) Chcesz normalnego pliku JAR, NIE wykonywalnego, więc najpierw musisz skompilować swój kod, aby pobrać pliki .class, a następnie otwórz wiersz polecenia i postępuj zgodnie z instrukcjami tutaj:Utwórz plik Jar Polecenie będzie wyglądało mniej więcej tak:

jar cf myName.jar * .class

Gdy masz już plik jar, musisz utworzyć plik .xml w tym samym folderze i nazwać go build.xml. Edytuj go za pomocą edytora tekstu. Postępuj zgodnie z instrukcjami podanymi powyżej, aby go utworzyć. Będzie to wyglądać mniej więcej tak:

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

Stamtąd (przy okazji używam MacBooka Pro) wszystko, co musisz zrobić, to uruchomić wiersz poleceń z tego folderu:

pakiet mrówek

i powinien utworzyć plik .app w folderze o nazwie release. Podsumowując: wszystko, czego potrzebujesz, to plik .jar i plik build.xml w tym samym folderze, a następnie uruchom komendę: ant bundle (lub cokolwiek nazwałeś swoim celem w pliku build.xml, nazwałem go pakietem)

Powodzenia, mam nadzieję, że to pomoże każdemu.

Jeśli ktoś się zastanawia, wziąłem Info.plist, który został wygenerowany przez JarBundler i umieściłem go w katalogu, który robiłem i działał! Więc to był problem, po prostu nie wiedziałem, jak go poprawnie sformatować ... tutaj:Info.plist

questionAnswers(3)

yourAnswerToTheQuestion