Как я могу создать исполняемый файл Apple .app из моего файла Java .jar? - PullRequest
1 голос
/ 23 сентября 2011

Я создал исполняемый Java-файл Swing .jar. На Windows работает нормально. Иерархия приложений:

application.jar

images (Папка) .......... Содержит все изображения, которые использует приложение.

библиотеки (Папка) ....... Содержит все внешние библиотеки JAR, используемые приложением.

пачки (Папка) ......... Содержит все файлы пачки, используемые приложением.

база данных (папка) ........ Содержит файлы базы данных, используемые приложением.

Все вышеперечисленные папки существуют вне файла jar. Теперь я пытаюсь создать исполняемый файл Mac (.app) из «application.jar», чтобы запустить его на Mac, поэтому я использовал «Jar Bundler», как указано здесь , но когда я запускаю приложение вывода. В файле приложения ничего не происходит, ничего не запускается, и я даже не могу его отладить.

Я думаю, что основная причина в том, что он не видит внешние папки. Так нельзя ли создать файл .app, если в приложении есть внешние папки? И есть ли способ отладки .app-файла, чтобы увидеть, что происходит?

Ответы [ 4 ]

3 голосов
/ 23 сентября 2011

Ничего не работает, и я даже не могу отладить его.

Диагностический вывод процесса запуска может быть получен следующим образом:

$ export JAVA_LAUNCHER_VERBOSE
$ ./YourApplication.app/Contents/MacOS/JavaApplicationStub

Здесь есть связанный пример здесь .

2 голосов
/ 23 сентября 2011

Скорее всего, проблема в вашем рабочем каталоге.

  • Когда вы запускаете исполняемый файл JAR, дважды щелкнув по нему, рабочий каталог является родительским каталогом файла JAR.

  • По умолчанию рабочим каталогом комплекта приложений является его родительский каталог.Если вы упакуете внешние папки в пакет приложений, они будут расположены в $APP_PACKAGE/Contents/Resources.

Таким образом, предположение о рабочем каталоге, который вы создаете для исполняемого файла JAR, не подходит для пакета приложения.

Для того, чтобы установить рабочий каталог вдобавьте

<key>WorkingDirectory</key>
<string>$APP_PACKAGE/Contents/Resources</string>

к файлу Info.plist вашего пакета.

Если вы ничего не знаете о пакетах приложений, прочитайте этот документ .

1 голос
/ 23 сентября 2011

Это может помочь: AppBundler от Джош Мариначи

0 голосов
/ 23 сентября 2011

Я не уверен насчет вашей точной иерархии каталогов. Но на Mac с Xcode установлено приложение под названием «Jar Bundler». Он существует именно для той цели, о которой вы просите. Кстати, приложения Mac используют суффикс .app, это правильно. Но они не файлы. Это каталоги.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...