Để phân tích cú pháp dòng lệnh trong Java, tôi thường sử dụng Apache Commons CLI. Ai có thể giới thiệu bất kỳ thư viện thay thế nào không?Phân tích cú pháp dòng lệnh: Commons CLI lựa chọn thay thế?
Trả lời
JCommander âm thanh như một cách tiếp cận rất đơn giản và thú vị để phân tích đối số dòng lệnh với các chú thích (từ tác giả của TestNG):
bạn chú thích các lĩnh vực với mô tả về lựa chọn của mình:
import com.beust.jcommander.Parameter;
public class JCommanderTest {
@Parameter
public List<String> parameters = Lists.newArrayList();
@Parameter(names = { "-log", "-verbose" }, description = "Level of verbosity")
public Integer verbose = 1;
@Parameter(names = "-groups", description = "Comma-separated list of group names to be run")
public String groups;
@Parameter(names = "-debug", description = "Debug mode")
public boolean debug = false;
}
và sau đó bạn chỉ cần yêu cầu JCommander để phân tích:
JCommanderTest jct = new JCommanderTest();
String[] argv = { "-log", "2", "-groups", "unit", "a", "b", "c" };
new JCommander(jct, argv);
Assert.assertEquals(jct.verbose.intValue(), 2);
Đây là cách Cederic giới thiệu: http://beust.com/weblog/2010/07/13/announcing-jcommander-1-0/ – Jan
Không thể tìm thấy API để in trợ giúp. Xem câu hỏi liên quan: http://stackoverflow.com/questions/30046171/how-to-print-help-using-jcommander –
JCommander giờ đây đã ở đây http://jcommander.org/ – xamde
Câu trả lời này có hữu ích không? How to parse command line arguments in Java?
Tôi đánh giá cao những liên kết này đến các khuôn khổ thay thế và tôi phải thừa nhận rằng tôi đã không nhận thấy câu hỏi này rất giống nhau.Tuy nhiên, tôi đã hy vọng đạt được một người * thực sự đã thử * các lựa chọn thay thế khác nhau và ai có thể * giới thiệu * một trong số đó. – Jan
Về mặt này, đây là loại bài viết tôi đang tìm kiếm: http://furiouspurpose.blogspot.com/2008/07/command-line-parsing-libraries-for-java.html Cảm ơn bạn! – Jan
tôi nhìn thấy một vài liệt kê ở đây command line interpreters
Tại java-source.net bạn có thể tìm thấy ít nhất 4 thư viện thay thế khác để Apache Commons CLI.
getopt-1.0.11 là một đơn giản dễ sử dụng thư viện nhẹ tôi đã sử dụng một lần cho đối số dòng lệnh phân tích
tôi sử dụng và như
http://martiansoftware.com/jsap/
mã nguồn mở của nó, đơn giản. Của nó không hoạt động, tôi nghĩ rằng tác giả có bàn là khác trong lửa.
Cá nhân tôi sử dụng args4J kohsuke tại https://github.com/kohsuke/args4j
Đó cũng là sở thích cá nhân của tôi. args4j linh hoạt hơn JCommander. Các nguyên tắc là như nhau, nhưng nó trực quan hơn để sử dụng và phân biệt giữa các đối số và các tùy chọn. –
Bạn có thể thử commandline (tên khá vô danh, tôi biết)
Nó sử dụng chú thích để lập bản đồ đối số dòng lệnh vào một mô hình đối tượng. Một vài phân tích cú pháp các chế độ và một tập hợp các chú thích có thể được kết hợp theo nhiều cách khác nhau cho phép bạn tạo các quy tắc tùy chọn dòng lệnh khá tiên tiến.
Mặc dù nó cho phép bạn ánh xạ các đối số dòng lệnh trực tiếp lên mô hình miền của mình, bạn nên cân nhắc sử dụng các lớp riêng biệt cho các đối số dòng lệnh.
- 1. Lựa chọn thay thế cho FastDateFormat để phân tích cú pháp ngày hiệu quả?
- 2. Phân tích lệnh dòng lệnh
- 3. Nhập dòng lệnh phân tích cú pháp cho các số
- 4. Haskell: Phân tích cú pháp đối số dòng lệnh
- 5. Chọn trình phân tích cú pháp Haskell
- 6. Kết hợp phân tích cú pháp phân tích cú pháp, phân tích cú pháp và phân tích cú pháp rừng
- 7. Phân tích cú pháp Ruby: phân tích cú pháp nhiều dòng
- 8. Trình phân tích cú pháp dòng lệnh và thiếu phân nhóm và nhóm?
- 9. Ổi có đi kèm với một trình phân tích cú pháp đối số dòng lệnh
- 10. Trình tạo trình phân tích cú pháp và trình phân tích cú pháp cho Common Lisp
- 11. Trình phân tích cú pháp tùy chọn cho C/C++?
- 12. regex để phân tích cú pháp câu lệnh SQL
- 13. dòng lệnh arg phân tích cú pháp thông qua nội soi
- 14. HTML để phân tích cú pháp/script thực hiện lệnh
- 15. Tùy chọn phân tích cú pháp CSV với .NET
- 16. javacc tùy chọn phân tích cú pháp lookahead, Java
- 17. Python - cách đọc/phân tích cú pháp csv như dòng?
- 18. Phân tích cú pháp YAML, quay lại với số dòng
- 19. Phân tích cú pháp đầu ra của lệnh trong Python
- 20. Các lựa chọn thay thế nhị phân
- 21. Hiệu suất Bộ chọn CSS, Phân tích cú pháp DOM
- 22. Phân tích cú pháp XML Libxmljs (Node.js)
- 23. Chọn đúng trình phân tích cú pháp XML của IBM
- 24. LINQ Cú pháp - Lựa chọn nhiều cột
- 25. Phân tích cú pháp đối số tập lệnh shell
- 26. Cách tốt nhất để phân tích cú pháp dòng lệnh args trong Bash là gì?
- 27. Phân tích cú pháp nhiều tham số dòng lệnh được đặt tên
- 28. gcc C++ trình phân tích cú pháp thông báo lỗi dòng lệnh
- 29. Thư viện Java để phân tích cú pháp tham số dòng lệnh?
- 30. Phân tích cú pháp trong Emacs Lisp
Nếu bạn định yêu cầu thay thế cho những gì bạn thường sử dụng, sẽ hữu ích nếu bạn nói những gì bạn đang tìm kiếm mà tùy chọn thông thường của bạn không cung cấp. –
Thành thật mà nói, tôi không có một tính năng mất tích cụ thể nào. Đúng, Apache Commons CLI là 'đã thử và thử nghiệm', nhưng nó cũng khá dài dòng. Tôi chỉ tự hỏi nếu có ai giới thiệu bất kỳ ý tưởng mới nào trong lĩnh vực này. Trong thể loại này, tôi nghĩ tôi sẽ xem xét kỹ hơn đề xuất JCommander bên dưới. – Jan
có thể trùng lặp của [Có một trình phân tích đối số dòng lệnh tốt cho Java không?] (Http://stackoverflow.com/questions/367706/is-there-a-good-command-line-argument-parser-for-java) –