Commandline là dựa trên chú thích, cho phép các quy tắc phức tạp để kết hợp các đối số (chuỗi, lồng nhau, đối số, loại, ...) và được ghi lại hợp lý.
Để sử dụng nó, thêm
<dependency>
<groupId>com.github.jankroken</groupId>
<artifactId>commandline</artifactId>
<version>1.7.0</version>
</dependency>
để pom của bạn, và tuyên bố các tùy chọn có sẵn như sau:
public class CommandOptions {
private List<String> commands = null;
private boolean parameter = false;
private boolean url = true;
private boolean help = false;
@LooseArguments
public void setCommands(List<String> commands) {
this.commands = commands;
}
@LongSwitch("parameter")
@Toggle(true)
public void setParameter(boolean parameter) {
this.parameter=parameter;
}
@LongSwitch("noURL")
@Toggle(false)
public void setUrl(boolean url) {
this.url = url;
}
@longSwitch("help")
@Toggle(true)
public void setHelp(boolean help) {
this.help = help;
}
// getters
}
và sau đó thực sự phân tích dòng lệnh, làm
public final static void main(String[] args) {
try {
CommandOptions options = CommandLineParser.parse(CommandOptions.class, args, OptionStyle.SIMPLE);
// and then you can pass options to your application logic...
} catch
...
}
}
lưu ý rằng nó chưa (chưa) chứa văn bản trợ giúp được tạo tự động. Đây là nguyên mẫu, nhưng bị hủy bỏ. Việc tạo một văn bản trợ giúp cơ bản cho các trường hợp đơn giản là dễ dàng, nhưng đối với các cấu hình phức tạp hơn (ae các tùy chọn có sẵn cho ứng dụng như "find" hoặc "gcc"), kết quả sẽ không đẹp, và bạn có thể muốn tự kiểm soát bố cục.
Câu hỏi cũ liên quan chặt chẽ hơn: http://stackoverflow.com/questions/435740/are-there-good-java-libraries-that-facilitate-building-command-line-applications – Jonik
bản sao có thể có của [Có tốt không trình phân tích cú pháp đối số dòng lệnh cho Java?] (http://stackoverflow.com/questions/367706/is-there-a-good-command-line-argument-parser-for-java) –
Đây là một câu hỏi hay mà xứng đáng trên http://softwarerecs.stackexchange.com/. –