Bagaimana saya menjalankan botol ketika saya mengklik dua kali?

10

Jadi, saya klik dua kali pada file jar saya dan itu hanya berkedip jendela dengan layar putih kemudian menghilang. Setelah itu, saya klik kanan dan pilih "Open with jar launcher" itu sama. terlalu. Saya membuka Terminal dan mengetik java -jar "System FRONT.jar"kemudian terbuka dengan sempurna.

Saya ingin dibuka langsung ketika mengklik dua kali! Bagaimana aku melakukan itu?

SystemNetworks
sumber
Mungkin membuka jendela terminal, selesai dan kemudian menutup jendela terminal.
The Unfun Cat
Untuk men-debug di Terminal.app - goto Preferences-> Pengaturan pilih tab Shell dan Ubah opsi "Ketika Shell keluar" maka terminal akan tetap terbuka
user151019

Jawaban:

5

Anda dapat menambahkan skrip pendek ke .jar untuk membuatnya dapat dieksekusi melalui klik ganda. Di Terminal lakukan hal berikut:

$ 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

Mengklik dua kali executable_appsekarang akan meluncurkan aplikasi.


Mengapa ini berhasil? Yah, .jar hanyalah arsip .zip yang dibuka dan dijalankan oleh java. Dan format zip memungkinkan untuk menambahkan hal-hal tambahan di depan arsip yang sebenarnya. Zip unarchiver apa pun melewatkan bagian ini sampai menemukan awal arsip (ditunjukkan oleh PK ... ).

nohillside
sumber
2

Cara terbaik untuk membuat aplikasi java gui berfungsi dengan OSX adalah dengan membundelnya sebagai aplikasi. Ini membutuhkan Jar Bundler.app yang di Lion berada di /usr/share/java/Tools/Jar Bundler.app. Saya pikir itu diinstal sebagai bagian dari Xcode tetapi tampaknya tidak ada dalam dokumentasi Apple saat ini sehingga mungkin sekarang tidak didukung. Dokumentasi lama ada di sini

Tampaknya ada tugas semut untuk melakukan ini di appbundler yang didokumentasikan dalam dokumentasi Oracle JavaSE .

pengguna151019
sumber
Sebenarnya ini sebuah permainan. Jadi bagaimana cara membuat orang mengklik dua kali padanya dan membuka toples saya tanpa perintah?
SystemNetworks
Pengguna lain akan lebih suka sebagai aplikasi OSX daripada hanya .jar. Dalam hal ini Anda melakukannya sekali sebagai bagian dari proses pembuatan dan pengguna tidak perlu melakukan apa pun
user151019
0

paket

Anda dapat menggunakan packr untuk paket sampai Anda jardistribusi untuk mudah dan mengklik dua kali untuk membuka:

Paket JAR Anda, aset dan JVM untuk distribusi di Windows (ZIP), Linux (ZIP) dan Mac OS X (.app), menambahkan file yang dapat dieksekusi asli agar terlihat seperti aplikasi adalah aplikasi asli. Packr paling cocok untuk aplikasi GUI, seperti game yang dibuat dengan libGDX

packr telah dibahas di Hacker News dan merupakan proyek open source.

Graham Miln
sumber