Bagaimana cara mengirimkan parameter ke file jar pada saat eksekusi?

101

Bagaimana cara mengirimkan parameter ke file JAR pada saat eksekusi?

nwinkler
sumber

Jawaban:

144

Untuk meneruskan argumen ke toples:

java -jar myjar.jar one two

Anda dapat mengaksesnya dalam metode main () dari "Kelas-Utama" (disebutkan dalam manifest.mffile JAR).

String one = args[0];  
String two = args[1];  
Reji
sumber
40

The JAWA Dokumentasi mengatakan :

java [opsi] -jar file.jar [argumen ...]

dan

... Argumen non-opsi setelah nama kelas atau nama file JAR diteruskan ke fungsi utama ...

Mungkin Anda harus meletakkan argumen dalam tanda kutip tunggal.

Xn0vv3r
sumber
7
Tautan ini sudah mati.
bfontaine
1
Berikut adalah tautan yang berfungsi yang menunjukkan penggunaan utilitas jar Java - docs.oracle.com/javase/tutorial/deployment/jar . Bersulang!
realPK
15

Anda dapat melakukannya dengan sesuatu seperti ini, jadi jika tidak ada argumen yang ditentukan, itu akan tetap berlanjut:

public static void main(String[] args) {
    try {
        String one = args[0];
        String two = args[1];
    }
    catch (ArrayIndexOutOfBoundsException e){
        System.out.println("ArrayIndexOutOfBoundsException caught");
    }
    finally {

    }
}

Dan kemudian luncurkan aplikasi:

java -jar myapp.jar arg1 arg2
makanan ringan
sumber
21
Anda tidak boleh menggunakan pengecualian untuk mengarahkan kode Anda. Sebagai gantinya, Anda harus memeriksa panjang array sebelum mengaksesnya!
chuck258
Nah, jika program harus SELALU memiliki satu atau lebih parameter, tidak memiliki IMHO adalah kasus yang sah untuk menggunakan pengecualian.
MikeW
6
java [ options ] -jar file.jar [ argument ... ]

jika Anda perlu meneruskan file properti log4j gunakan opsi di bawah ini

-Dlog4j.configurationFile=directory/file.xml


java -Dlog4j.configurationFile=directory/file.xml -jar <JAR FILE> [arguments ...]
Bachan Joseph
sumber