Apakah mungkin untuk mengubah aplikasi Java menjadi paket mandiri yang berjalan "out of the box"? Pengguna akhir tidak diharuskan untuk menginstal Java JRE, atau pemasang tidak boleh mengandung JRE dan menginstalnya untuk pengguna.
Distribusi akhir harus mengandung executable asli (semoga satu untuk setiap Windows, Mac dan Linux) bersama dengan file data biasa dan setiap JAR tambahan jika diperlukan. Saya tidak mencari solusi "satu file" secara khusus - Saya sebenarnya ingin file data tidak terhambat.
Bagaimana ini bisa dilakukan?
sumber
Untuk Mac, lihat dokumentasi Oracle untuk mengemas aplikasi Java untuk Mac . Mereka telah mengatur Java 7 sehingga Anda dapat mem-bundle runtime ke dalam bundel aplikasi yang berisi file jar Anda (.app benar-benar folder yang dapat dieksekusi), yang diperlukan untuk distribusi di Mac App Store. Pada dasarnya, bundel .app sebagian besar sama dengan apa yang disarankan JAVA_HOME jawaban Eren, tetapi dikemas sebagai aplikasi Mac "asli".
Untuk mendistribusikan tanpa Mac App Store, Anda dapat pergi dengan tidak menandatangani aplikasi, memberi tahu pengguna Mountain Lion Anda bahwa mereka dapat menjelajahi Gatekeeper dengan mengklik kanan (atau ctrl + klik) pada aplikasi Anda dan mengklik "Buka" ketika mereka pertama buka aplikasi. Ini masih akan memperingatkan mereka bahwa aplikasi tersebut tidak ditandatangani, tetapi itu akan memungkinkan mereka untuk membukanya, dan kemudian memungkinkan mereka untuk mengklik dua kali pada aplikasi untuk membuka selanjutnya.
(catatan: Anda juga bisa lolos dengan penandaan skrip shell bergaya Linux sebagai executable dan kemudian membangun bundel .app di sekitarnya. NetBeans melakukan ini di Mac dan Linux, meskipun tanpa JRE / JDK yang dibundel)
sumber