對於Java中的命令行解析,我通常使用Apache Commons CLI。 任何人都可以推薦任何其他庫嗎?命令行解析:Commons CLI的替代方案?
回答
JCommander聽起來像是一個非常簡單和有趣的方式來解析命令行參數與標註使用一次輕量級庫(從創建者TestNG的):
您註釋字段與您的選項的說明:
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;
}
,然後你只是問JCommander解析:
JCommanderTest jct = new JCommanderTest();
String[] argv = { "-log", "2", "-groups", "unit", "a", "b", "c" };
new JCommander(jct, argv);
Assert.assertEquals(jct.verbose.intValue(), 2);
這是Cederic如何介紹它的:http://beust.com/weblog/2010/07/13/announcing-jcommander-1-0/ – Jan 2010-07-22 14:17:52
無法找到API來打印幫助。看到相關的問題:http://stackoverflow.com/questions/30046171/how-to-print-help-using-jcommander – 2015-05-05 07:04:44
JCommander現在在這裏http://jcommander.org/ – xamde 2016-06-21 10:28:35
列舉了幾個在java-source.net你可以找到至少4個其他替代庫Apache的百科全書CLI。
getopt的-1.0.11是一個簡單易用的我的命令行arguements解析
我個人使用kohsuke的args4J在https://github.com/kohsuke/args4j
這也是我個人的喜好。 args4j比JCommander更靈活。原則是一樣的,但使用和區分參數和選項更直觀。 – 2016-07-25 20:23:13
你可以嘗試commandline(相當匿名的名字,我知道)
它使用註釋命令行參數映射到一個對象模型。一對解析 模式和一系列可以各種方式組合的註釋允許您創建相當先進的命令行選項規則。
雖然它允許您將命令行參數直接映射到您的域模型 ,但您應該考慮對命令行參數使用單獨的類。
- 1. 命令行中的Commons CLI空選項
- 2. IMAP搜索命令的替代方案
- 3. 狀態解析的替代方案
- 4. 替代的if else嵌套的命令行解析
- 5. 替代的解決方案
- 6. 解析命令CLI程序Python
- 7. MonoDevelop命令行編譯解決方案
- 8. AppendAllLines替代解決方案
- 9. Java解析當前解決方案的替代
- 10. Python:解析命令行
- 11. 解析execve的命令行()
- 12. 解析命令行參數
- 13. Apache Commons CLI選項解析器可以忽略未知的命令行選項嗎?
- 14. 「CSharpCodeProvider.Parse」的替代方案
- 15. Cmake,Boost解析命令行
- 16. 替代解析方法
- 17. commons beanutils替代
- 18. 合格Haskell列表解析的高效替代方案
- 19. 使用替代方案的純應用解析器
- 20. Python的shlex.split替代方案
- 21. Ruby解決方案替代.NET解決方案
- 22. 解析參數Java命令行程序
- 23. 需要Thread.sleep()的替代解決方案;
- 24. C++:模板的替代解決方案
- 25. WINAPI的替代解決方案CreateFile()
- 26. Hibernate.Envers的替代解決方案
- 27. 用替代方案和可選方案解析正則表達式
- 28. ViewState的替代方案
- 29. Python getopt(show命令的用法?思考:Apache Commons CLI)
- 30. 解析JSON像在命令行解釋
如果您打算尋求替代您平時使用的替代方法,那麼如果您要說出您的常規選項無法提供的內容,將會非常有用。 – 2010-07-22 13:22:22
說實話,我並沒有想到特別缺失的功能。誠然,Apache Commons CLI是'經過測試的',但它也相當冗長。我只是想知道是否有人在這個領域引入了新的想法。在這個類別中,我想我會仔細看看下面的JCommander建議。 – Jan 2010-07-22 13:58:30
可能的重複[是否有一個很好的命令行參數解析器的Java?](http://stackoverflow.com/questions/367706/is-there-a-good-command-line-argument-parser-for-java) – 2010-08-13 11:38:17