Подтвердить что ты не робот

Преобразование Java в файл .app для MacOSX с использованием JarBundler

Все, что я пытаюсь сделать, - это преобразовать простую 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

4b9b3361

Ответ 1

В Mac OS X пакет приложений - это каталог с именем, заканчивающимся на .app и содержащий ресурсы, используемые приложение. Эта игра является примером, который строит пакет in situ, используя ant построить script. Дополнительные ссылки цитируются здесь.

Ответ 3

Работал для меня! По какой-то причине я не мог поместить файл jarbundler .jar в область Ant, но вместо этого должен был явно указать на него из файла build.xml(я положил его в <projectRoot>/jarbundler/jarbundler-2.2.0.jar). Мой файл build.xml выглядел так:

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

Это создало "Triple Whammy.app" в моем каталоге проектов. Мой значок выглядит хорошо. Сладкое.

Теперь, когда я создал простую распределяемую кубик .app, время для создания чего-то удивительного...

(Mac OS X 10.6.8, Java 1.6.0_51, Ant 1.8.4, построил мой .jar, используя Maven 3.0.4 и его "сборку" версии 2.4).