Bagaimana saya bisa membuat file .jar dapat dieksekusi?

11

Saya mencoba menjalankan aplikasi jar di bawah Ubuntu, jadi saya menginstal OpenJDK Java 7 Runtime, tetapi ketika saya membuka aplikasi ini saya mendapat pesan ini:

File '/home/aimad/Programms/jMerise/JMerise.jar' tidak ditandai sebagai executable. Jika ini diunduh atau disalin dari sumber yang tidak dipercaya, mungkin berbahaya untuk dijalankan. Untuk detail lebih lanjut, baca tentang bit yang dapat dieksekusi.

Aimad Majdou
sumber

Jawaban:

17

Anda selalu dapat menjalankan file jar dengan melakukan java -jar JMerise.jar.

Namun, untuk membuat file jar itu sendiri dapat dieksekusi, Anda perlu mengatur bit yang dapat dieksekusi, seperti yang ditunjukkan oleh pesan. chmod +x /home/aimad/Programms/jMerise/JMerise.jarakan mencapai ini.

Setelah itu bisa Anda lakukan ./JMerise.jaruntuk menjalankannya.

man chmod akan memberi Anda informasi tentang cara kerja chmod.

Lihat juga: https://wiki.ubuntu.com/Security/ExecutableBit

Gary
sumber
7

Klik kanan pada file, klik pada properti, lalu pergi ke tab Izin, dan centang kotak yang mengatakan "Izinkan mengeksekusi file ini sebagai program".

masukkan deskripsi gambar di sini

RolandiXor
sumber
Bagaimana jika saya tidak dapat mencentang kotak di atas, untuk "mengizinkan menjalankan file sebagai program"? Saya memang memeriksanya, tetapi sesaat kemudian secara otomatis tidak dicentang!
user961627
@ user961627 Anda mungkin memiliki file .jar yang tersimpan di partisi yang tidak mendukung bit yang dapat dieksekusi. Lihat Tidak dapat membuat file dapat dieksekusi untuk detail lebih lanjut.
wjandrea
4

Pertama, Anda harus memastikan bahwa Anda memiliki lingkungan Java runtime yang sesuai pada sistem Anda. Ubuntu memiliki openjdk di repo resmi yang 99,99% kompatibel dengan Oracle Java, untuk menginstalnya ketik:

sudo apt-get install openjdk-7-jre

Berikutnya membuat file bernama java-jar-launcher.desktopdalam ~/.local/share/applicationsdan menempatkan isi berikut di dalamnya:

[Desktop Entry]
Type=Application
Name=Java Application Launcher
Icon=java
Exec=/usr/bin/java -jar %U
Categories=Application;Java
Terminal=False

Selanjutnya tambahkan baris berikut di ~/.local/share/applications/mimeapps.list:

application/x-java-archive=java-jar-launcher.desktop;

Sekarang Anda harus dapat mengklik dua kali file jar untuk meluncurkannya, jika tidak ada yang terjadi kemudian klik kanan pada file jar, pilih properti kemudian pergi ke tab "Buka Dengan" dan di sana Anda akan melihat "Java Application Launcher", pilih itu .

Metode ini lebih disukai (IMHO) karena dengan cara ini Anda tidak memberikan izin eksekusi ke file jar yang dapat berpotensi berbahaya. Metode ini hanya akan bekerja dalam lingkungan grafis dan membutuhkan pengguna untuk mengklik dua kali pada file.

tusharkant15
sumber
2

Karena Anda menjalankan aplikasi jar Anda java -jar application.jarmaka itu berarti java ada di jalur Anda. Anda memerlukan dua hal sederhana: 1) tambahkan juru bahasa (yang ternyata #!java -jar) di baris pertama dari file jar Anda seperti Anda melakukannya dengan skrip shell: echo '#!java -jar' > app.jar cat application.jar >> app.jar mv app.jar application.jar

Jika Anda menyimpan konten file jar Anda, Anda akan melihatnya dimulai dengan ex .: #!java -jar PK ^lN BOOT-INF/PK ..... ..... 2) tambahkan eksekusi atribut oleh chmod +x application.jar Sekarang Anda dapat "menjalankan sendiri" melalui ./application.jar.

gość
sumber
0

Jika menjalankan file .jar dari baris perintah berfungsi ( java -jar myFile.jar), tetapi mengklik dua kali dalam GUI tidak, dan jika sudo chmod +x myFile.jartampaknya berhasil tetapi Anda masih tidak bisa membuka dengan mengklik dua kali, dan jika mengklik kanan .jar file> Properti> Izin> "Izinkan mengeksekusi file sebagai program" tidak berfungsi (yaitu, kotak centang beralih kembali tepat setelah Anda mengkliknya), maka mungkin file .jar ada pada sistem file NTFS, yang tidak memungkinkan menjalankan izin pada dasar per file. (Anda mungkin memiliki masalah ini jika Anda melakukan dual-boot, misalnya, dan memiliki partisi NTFS bersama antara Ubuntu dan Windows).

Membuat peluncur (seperti yang dijelaskan oleh @ tusharkant15) akan berhasil karena di balik layar Anda mengeksekusi /usr/bin/java, bukan file .jar itu sendiri. Memindahkan file .jar ke beberapa sistem file lain yang bukan NTFS juga akan berfungsi.

Drammock
sumber