Bạn có thể sử dụng refcodes-console
tạo tác tại refcodes-console trên REFCODES.ORG:
Option<String> r = new StringOptionImpl("-r", null, "opt1", "...");
Option<String> s = new StringOptionImpl("-S", null, "opt2", "...");
Operand<String> arg1 = new StringOperandImpl("arg1", "...");
Operand<String> arg2 = new StringOperandImpl("arg2", "...");
Operand<String> arg3 = new StringOperandImpl("arg3", "...");
Operand<String> arg4 = new StringOperandImpl("arg4", "...");
Switch test = new SwitchImpl(null, "--test", "...");
Option<String> a = new StringOptionImpl("-A", null, "opt3", "...");
Condition theRoot = new AndConditionImpl(r, s, a, arg1, arg2, arg3, arg4,
test);
Tạo lập luận của bạn phân tích cú pháp ArgsParserImpl
với điều kiện gốc của bạn:
ArgsParser theArgsParser = new ArgsParserImpl(theRoot);
theArgsParser.setName("MyProgramm");
theArgsParser.setSyntaxNotation(SyntaxNotation.GNU_POSIX);
Trên bạn xác định cú pháp của bạn, dưới đây bạn gọi phân tích cú pháp:
theArgsParser.printUsage();
theArgsParser.printSeparatorLn();
theArgsParser.printOptions();
theArgsParser.evalArgs(new String[] {
"-r", "RRRRR", "-S", "SSSSS", "11111", "22222", "33333", "44444",
"--test", "-A", "AAAAA"
});
Trong trường hợp bạn cung cấp một số mô tả tốt, theArgsParser.printUsage()
thậm chí sẽ hiển thị cho bạn mức sử dụng được in đẹp:
Usage: MyProgramm -r <opt1> -S <opt2> -A <opt3> arg1 arg2 arg3 arg4 --test
Trong ví dụ trên tất cả đối số định nghĩa phải được thông qua bởi người sử dụng, nếu không phân tích cú pháp sẽ phát hiện một cách sử dụng sai. Trong trường hợp --test
tắc là phải tùy chọn (hoặc bất kỳ lý lẽ khác), gán theRoot
như sau:
theRoot = new AndConditionImpl (r, s, a, arg1, arg2, arg3, arg4, mới OptionalImpl (kiểm tra));
Sau đó, cú pháp của bạn trông như sau:
Usage: MyProgramm -r <opt1> -S <opt2> -A <opt3> arg1 arg2 arg3 arg4 [--test]
Các ví dụ đầy đủ đối với trường hợp của bạn, bạn tìm thấy trong StackOverFlowExamle. Bạn có thể sử dụng các điều kiện AND, OR, XOR và bất kỳ loại làm tổ nào ... hy vọng điều này sẽ hữu ích.
Đánh giá các đối số phân tích cú pháp như sau: r.getValue());
hoặc if (test.getValue() == true) ...
:
LOGGER.info("r :=" + r.getValue());
LOGGER.info("S :=" + s.getValue());
LOGGER.info("arg1 :=" + arg1.getValue());
LOGGER.info("arg2 :=" + arg2.getValue());
LOGGER.info("arg3 :=" + arg3.getValue());
LOGGER.info("arg4 :=" + arg4.getValue());
LOGGER.info("test :=" + test.getValue() + "");
LOGGER.info("A :=" + a.getValue());
có thể trùng lặp của (http://stackoverflow.com/questions/367706/how-to-parse-command- line-arguments-in-java) – xenteros