Jalankan Aplikasi Java dari Command Line

1. Ikhtisar

Biasanya, setiap aplikasi yang berarti menyertakan satu atau lebih file JAR sebagai dependensi. Namun, ada kalanya file JAR itu sendiri mewakili aplikasi mandiri atau aplikasi web.

Kami akan fokus pada skenario aplikasi mandiri di artikel ini. Selanjutnya, kami akan menyebutnya sebagai aplikasi JAR.

Dalam tutorial ini, pertama-tama kita akan mempelajari cara membuat aplikasi JAR. Nanti, kita akan belajar bagaimana menjalankan aplikasi JAR dengan atau tanpa argumen baris perintah .

2. Buat Aplikasi JAR

File JAR dapat berisi satu atau lebih kelas utama. Setiap kelas utama adalah titik masuk suatu aplikasi . Jadi, secara teoritis, file JAR dapat berisi lebih dari satu aplikasi, tetapi harus berisi setidaknya satu kelas utama agar dapat dijalankan.

File JAR dapat memiliki satu set titik masuk dalam file manifesnya . Dalam hal ini, file JAR adalah JAR yang dapat dijalankan. Kelas utama harus dimasukkan dalam file JAR itu.

Pertama-tama, mari kita lihat contoh singkat tentang cara mengompilasi kelas kita dan membuat JAR yang dapat dieksekusi dengan file manifes:

$ javac com/baeldung/jarArguments/*.java $ jar cfm JarExample.jar ../resources/example_manifest.txt com/baeldung/jarArguments/*.class

JAR yang tidak dapat dieksekusi hanyalah file JAR yang tidak memiliki Kelas-Utama yang ditentukan dalam file manifes. Seperti yang akan kita lihat nanti, kita masih bisa menjalankan kelas utama yang terdapat dalam file JAR itu sendiri.

Inilah cara kami membuat JAR yang tidak dapat dieksekusi tanpa file manifes:

$ jar cf JarExample2.jar com/baeldung/jarArguments/*.class

3. Argumen Baris Perintah Java

Sama seperti aplikasi lainnya, aplikasi JAR menerima sejumlah argumen, termasuk nol argumen. Itu semua tergantung pada kebutuhan aplikasi.

Ini memungkinkan pengguna untuk menentukan informasi konfigurasi saat aplikasi diluncurkan .

Hasilnya, aplikasi dapat menghindari nilai hardcode, dan masih dapat menangani banyak kasus penggunaan yang berbeda.

Argumen dapat berisi karakter alfanumerik, karakter unicode, dan mungkin beberapa karakter khusus yang diizinkan oleh shell, misalnya '@'.

Argumen dipisahkan oleh satu atau lebih spasi . Jika argumen perlu berisi spasi, spasi harus diapit di antara tanda kutip. Baik tanda kutip tunggal maupun tanda kutip ganda berfungsi dengan baik.

Biasanya, untuk aplikasi Java yang khas, saat menjalankan aplikasi, pengguna memasukkan argumen baris perintah setelah nama kelas.

Namun, tidak selalu demikian halnya untuk aplikasi JAR.

Seperti yang telah kita bahas, titik masuk kelas utama Java adalah metode utama. The argumen semua String s dan dilewatkan ke metode utama sebagai String array yang.

Yang mengatakan, dalam aplikasi, kita dapat mengkonversi elemen dari String array ke jenis lain data, seperti arang , int , ganda , mereka kelas wrapper, atau jenis lain yang sesuai.

4. Jalankan JAR yang Dapat Dieksekusi dengan Argumen

Mari kita lihat sintaks dasar untuk menjalankan file JAR yang dapat dieksekusi dengan argumen:

java -jar jar-file-name [args…]

JAR yang dapat dieksekusi yang dibuat sebelumnya adalah aplikasi sederhana yang hanya mencetak argumen yang dilewatkan. Kita dapat menjalankannya dengan sejumlah argumen. Di bawah ini adalah contoh dengan dua argumen:

$ java -jar JarExample.jar "arg 1" [email protected] 

Kami akan melihat output berikut di konsol:

Hello Baeldung Reader in JarExample! There are 2 argument(s)! Argument(1):arg 1 Argument(2):[email protected] 

Jadi, saat menjalankan JAR yang dapat dieksekusi, kita tidak perlu menentukan nama kelas utama pada baris perintah . Kami cukup menambahkan argumen kami setelah nama file JAR. Jika kami memberikan nama kelas setelah nama file JAR yang dapat dieksekusi, itu hanya menjadi argumen pertama ke kelas utama yang sebenarnya.

Sering kali, aplikasi JAR adalah JAR yang dapat dijalankan. JAR yang dapat dieksekusi dapat memiliki maksimal satu kelas utama yang ditentukan dalam file manifes.

Akibatnya, aplikasi lain dalam file JAR yang dapat dijalankan yang sama tidak dapat disetel dalam file manifes, tetapi kami masih dapat menjalankannya dari baris perintah seperti yang kami lakukan untuk JAR yang tidak dapat dijalankan. Kita akan melihat bagaimana tepatnya di bagian selanjutnya.

5. Jalankan JAR Non-Executable dengan Argumen

Untuk menjalankan aplikasi dalam file JAR yang tidak dapat dieksekusi, kita harus menggunakan opsi -cp daripada -jar . Kami akan menggunakan opsi -cp (kependekan dari classpath) untuk menentukan file JAR yang berisi file kelas yang ingin kami jalankan:

java -cp jar-file-name main-class-name [args…]

Seperti yang Anda lihat, dalam kasus ini, kita harus memasukkan nama kelas utama di baris perintah, diikuti dengan argumen .

JAR yang tidak dapat dijalankan yang dibuat sebelumnya berisi aplikasi sederhana yang sama. Kita bisa menjalankannya dengan argumen (termasuk nol). Berikut contoh dengan dua argumen:

$ java -cp JarExample2.jar com.baeldung.jarArguments.JarExample "arg 1" [email protected]

Dan, seperti yang kita lihat di atas, kita akan melihat output berikut:

Hello Baeldung Reader in JarExample! There are 2 argument(s)! Argument(1):arg 1 Argument(2):[email protected]

6. Kesimpulan

Dalam tutorial ini, kami mempelajari dua cara menjalankan aplikasi JAR pada baris perintah dengan atau tanpa argumen.

Kami juga menunjukkan bahwa argumen dapat berisi spasi dan karakter khusus (jika diizinkan oleh shell).

Seperti biasa, kode untuk contoh tersedia di GitHub.