Làm cách nào để chuyển các tham số vào tệp jar tại thời điểm thực thi?


101

Làm cách nào để chuyển các tham số vào tệp JAR tại thời điểm thực thi?

Câu trả lời:


144

Để chuyển các đối số vào jar:

java -jar myjar.jar one two

Bạn có thể truy cập chúng trong phương thức main () của "Main-Class" (được đề cập trong manifest.mftệp JAR).

String one = args[0];  
String two = args[1];  

40

Các tài liệu JAVA nói :

java [tùy chọn] -jar file.jar [đối số ...]

... Các đối số không phải tùy chọn sau tên lớp hoặc tên tệp JAR được chuyển cho hàm chính ...

Có thể bạn phải đặt các đối số trong dấu ngoặc kép.


7
Liên kết này đã chết.
bfontaine

1
Đây là một liên kết hoạt động hiển thị cách sử dụng tiện ích jar của Java - docs.oracle.com/javase/tutorial/deployment/jar . Chúc mừng!
realPK

15

Bạn có thể làm điều đó với một cái gì đó như thế này, vì vậy nếu không có đối số nào được chỉ định, nó vẫn sẽ tiếp tục:

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

    }
}

Và sau đó khởi chạy ứng dụng:

java -jar myapp.jar arg1 arg2

21
Bạn không bao giờ nên sử dụng các ngoại lệ để điều khiển mã của mình. Thay vào đó, bạn nên kiểm tra độ dài của mảng trước khi đánh dấu nó!
chuck258

Chà, nếu chương trình LUÔN LUÔN phải có một hoặc nhiều tham số, không có tham số IMHO là trường hợp hợp pháp để sử dụng ngoại lệ.
MikeW

6
java [ options ] -jar file.jar [ argument ... ]

nếu bạn cần chuyển tệp thuộc tính log4j, hãy sử dụng tùy chọn bên dưới

-Dlog4j.configurationFile=directory/file.xml


java -Dlog4j.configurationFile=directory/file.xml -jar <JAR FILE> [arguments ...]
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.