Все, что я пытаюсь сделать, - это преобразовать простую java-программу в файл macOSX.app, чтобы я мог распространять ее как простой исполняемый файл.
Я читал повсюду, и все говорят то же самое:
- Использовать Xcode. Насколько я могу судить, Xcode больше не поддерживает Java Builds
-
Использовать Jar Bundler. Все уроки кажутся устаревшими, и это не работает. Когда я запускаю: java -jar jarbundler-2.0.0.jar
Консоль возвращает "нет основного атрибута манифеста в jarbundler-2.0.0.jar"
Если я прав, это будет ошибкой для тех, кто правильно упаковал файл jar? Но я попытался загрузить его с других веб-сайтов и других версий, но я получаю то же самое.
-
Говорят, вы можете просто создать каталоги и файлы самостоятельно, а затем переименовать свою папку в .app, а затем запустить команду над ней или что-то подобное, но это сложно, так как я не знаю точно, как создать информацию .plist... если вы хотите сделать это таким образом, лучший веб-сайт, который я нашел до сих пор, - это: Параметры развертывания Java для OSX
Я скомпилировал свой код в файл .jar, у меня есть значок и все, все, что мне нужно сделать, это как-то упаковать его в файл .app.
Спасибо за помощь заранее!
Решение
EDIT: Я понял! После 7 или 8 часов поиска и чтения он работает. Поскольку я новичок в этом, я собираюсь опубликовать все, что я узнал, чтобы спасти других, которые сталкиваются с одной и той же проблемой, переживая боль. Я сдался, сделав это самостоятельно, и вернулся к ДжарБундлеру. Если кто-то еще читает это, и они ничего не знают о ANT, вот что я сделал: Загрузите JarBundler, я получил отсюда: Mac OS X JarBundler ANT Задача и следуйте инструкциям.
Когда вы его загрузите, поместите файл jarbundler-2.2.0.jar здесь:
/USR/доли/ant/Библиотека
вам может потребоваться запустить команду для ее перемещения, например:
sudo mv jarbundler-2.2.0.jar ~/../../usr/share/ ant/lib/jarbundler-2.2.0.jar
как я уже сказал, я все еще учился, но это сработало для меня.
Убедитесь, что вы переместили правый jarbundler, вот где я столкнулся с проблемами, я переместил всю папку, а не внутренний .jar файл, поэтому убедитесь, что вы перемещаете .jar, который находится в папке zip, которую вы скачали, а не все, иначе, когда вы идете построить его, вы получите сообщение об ошибке: taskdef class net.sourceforge.jarbundler.JarBundler не найден.
Затем вам нужно скомпилировать свой код в файл .jar(есть два типа: один - как .zip, а другой - исполняемый файл). Вы хотите, чтобы обычный JAR файл был НЕ выполнимым, поэтому для этого сначала необходимо скомпилировать ваш код для получения файлов .class, затем откройте командную строку и следуйте инструкциям здесь: Создать файл Jar Команда будет выглядеть как-то например:
jar cf myName.jar *.class
Как только у вас есть файл jar, вам нужно создать XML файл в той же папке и его нужно вызвать build.xml. Отредактируйте его с помощью текстового редактора. Следуйте инструкциям по ссылке выше, чтобы создать ее. Он будет выглядеть примерно так:
//build.xml
<project name="MyProject">
<taskdef name="jarbundler"
classname="net.sourceforge.jarbundler.JarBundler" />
<target name="bundle">
<jarbundler dir="release"
name="Apollo Image Editor"
mainclass="ImageEditorGUI"
jar="ApolloIE.jar"
icon="Aperture.icns" />
</target>
</project>
Оттуда (кстати, я использую Macbook Pro) все, что вам нужно сделать, - запустить командную строку из этой папки:
ant bundle
и он должен создать файл .app в папке с именем release. Итак, подведем итог: все, что вам нужно, это ваш файл .jar и файл build.xml в той же папке, а затем выполните команду: ant (или то, что вы назвали своей целью в файле build.xml, я назвал его пакетом)
Удачи, надеюсь, что это поможет кому-то там.
Если кто-то задается вопросом, я взял Info.plist, который был сгенерирован JarBundler, и поместил его в каталог, который я делал, и это сработало! Так вот в чем проблема: я просто не знал, как правильно ее отформатировать... вот он: Info.plist