Como executo um jarro quando clico duas vezes nele?

10

Então, clico duas vezes no meu arquivo jar e ele pisca uma janela com tela branca e desaparece. Depois disso, clique com o botão direito do mouse e selecione "Abrir com o iniciador de jar". É o mesmo. também. Abri o Terminal e digitei e java -jar "System FRONT.jar"ele se abriu perfeitamente.

Quero que seja aberto diretamente ao clicar duas vezes nele! Como faço isso?

SystemNetworks
fonte
Provavelmente abre uma janela do terminal, termina e depois fecha a janela do terminal.
The Unfun Cat
Para depuração no Terminal.app - Goto Preferências> Configurações escolha a guia Shell e Alter do "Quando a Shell saídas" opção, em seguida, o terminal vai ficar aberto
user151019

Respostas:

5

Você pode anexar um script curto ao .jar para torná-lo executável via clique duplo. No Terminal, faça o seguinte:

$ 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_appAgora, clicar duas vezes deve iniciar o aplicativo.


Por que isso funciona em primeiro lugar? Bem, um .jar é apenas um arquivo .zip que é descompactado e executado por java. E o formato zip permite acrescentar coisas adicionais na frente do arquivo real. Qualquer desarquivador de zip ignora esta parte até encontrar o início do arquivo (indicado por PK ... ).

nohillside
fonte
2

A melhor maneira de fazer um aplicativo java gui funcionar com o OSX é agrupá-lo como um aplicativo. Isso requer Jar Bundler.app, que está no Lion /usr/share/java/Tools/Jar Bundler.app. Eu acho que ele está instalado como parte do Xcode, mas parece não estar na documentação atual da Apple, portanto, agora não é mais possível. A documentação antiga está aqui

Parece haver tarefas ant para fazer isso no appbundler que está documentado na documentação do Oracle JavaSE .

user151019
fonte
Na verdade, é um jogo. Então, como faço para as pessoas clicarem duas vezes nele e abrirem meu jar sem comandos?
SystemNetworks
Outros usuários o preferirão como um aplicativo OSX em vez de apenas um .jar. Neste caso, você fazê-lo uma vez como parte do processo de construção e os usuários não têm que fazer qualquer coisa
user151019
0

packr

Você pode usar o packr para empacotar seu pacote jarpara facilitar a distribuição e clicar duas vezes para abrir:

Empacota seu JAR, ativos e uma JVM para distribuição no Windows (ZIP), Linux (ZIP) e Mac OS X (.app), adicionando um arquivo executável nativo para parecer que o aplicativo é nativo. O Packr é mais adequado para aplicativos GUI, como jogos criados com libGDX

O packr foi discutido no Hacker News e é um projeto de código aberto.

Graham Miln
fonte