Как мне запустить банку, если дважды щелкнуть по ней?

10

Итак, я дважды щелкаю по файлу JAR, и он просто мигает окном с белым экраном, а затем исчезает. После этого я щелкаю правой кнопкой мыши и выбираю «Открыть с помощью jar launcher», то же самое. слишком. Я открыл Терминал и набрал, java -jar "System FRONT.jar"затем он открылся идеально.

Я хочу, чтобы он открывался сразу при двойном щелчке по нему! Как мне это сделать?

SystemNetworks
источник
Вероятно, он открывает окно терминала, завершает и затем закрывает окно терминала.
Несчастный кот
Для отладки в Terminal.app - зайдите в «Настройки» -> «Настройки», перейдите на вкладку «Оболочка» и измените параметр «Когда оболочка выйдет», тогда терминал останется открытым
user151019

Ответы:

5

Вы можете добавить короткий скрипт к .jar, чтобы сделать его исполняемым с помощью двойного щелчка. В Терминале сделайте следующее:

$ cat > header-template <<"EOF"
#!/bin/sh

exec java -jar $0 "$@" > /dev/null

EOF
$ cat header-template "System FRONT.jar" > executable_app
$ chmod +x executable_app

Двойной щелчок executable_appтеперь должен запустить приложение.


Почему это работает в первую очередь? Ну, .jar - это просто архив .zip, который распаковывается и исполняется Java. И формат почтового индекса позволяет добавлять дополнительные материалы перед фактическим архивом. Любой архиватор zip пропускает эту часть, пока не найдет начало архива (обозначено PK ... ).

Nohillside
источник
2

Лучший способ заставить приложение java GUI работать с OSX - это связать его как приложение. Это требует Jar Bundler.app, который на Lion находится в /usr/share/java/Tools/Jar Bundler.app. Я думаю, что он установлен как часть XCode, но, похоже, его нет в текущей документации Apple, поэтому он может не поддерживаться. Старая документация здесь

Похоже, что есть задачи ant для этого в appbundler, что описано в документации Oracle JavaSE .

user151019
источник
На самом деле это игра. Так как же заставить людей дважды щелкнуть по нему и открыть мою банку без команд?
SystemNetworks
Другие пользователи предпочтут его как приложение OSX, а не просто как .jar. В этом случае вы делаете это один раз как часть процесса сборки, и пользователям не нужно ничего делать
user151019
0

packr

Вы можете использовать packr, чтобы упаковать свой пакет jarдля легкого распространения и дважды щелкнуть, чтобы открыть:

Упаковывает ваш JAR, ресурсы и JVM для распространения в Windows (ZIP), Linux (ZIP) и Mac OS X (.app), добавляя собственный исполняемый файл, чтобы он выглядел так, будто приложение является собственным приложением. Packr больше всего подходит для приложений с графическим интерфейсом, таких как игры, созданные с помощью libGDX

packr обсуждался на Hacker News и является проектом с открытым исходным кодом.

Грэм Милн
источник