我正在用Java开发一个小型学生项目,但我遇到了一个问题。 首先,我想向您展示这个想法:
我们在命令行中运行主应用程序,让我们说“ems”:
java -jar ems.jar
ems: Hello, bla bla bla type help to see bla bla bla.
现在我希望用户输入带有这样的参数的命令(只是示例)
ems: help
ems: list -h
ems: program -h
ems: program -create -n Ping -path "C:\\ping.exe" //-create to add new program record to DB
ems: program -delete -n Ping //-delete from DB
ems: list -create -n ListForPinging //-creating new list in DB
ems: list -add -n ListForPinging -p Ping -host stackoverflow.com -t //-add linking program with list
这将导致使用某些参数执行不同的方法,修改DB中的记录并在DB中插入这些参数(供以后使用)。 After executing this list, it will fire up C:\\ping.exe -host stackoverflow.com -t
问题是:我是否走正确的道路?如何解析/处理这些参数?我应该和.split一起去吗?有什么提示吗?
提前致谢。
编辑: 我开始使用regexp,.split(“”);但它不具备可扩展性。还发现了一些像args4j这样的工具,但无法让它工作。我找到的所有东西都在研究主程序的参数而不是“内部”的参数。或者也许我做错了?不,它不是功课。我自己的任务是更好地进行编程。
答案 0 :(得分:0)
解决。使用HashMap存储param + name并使用.split解析它。
答案 1 :(得分:0)
您还拥有Apache Commons CLI,它为您提供了一个非常好的API,用于解析和使用命令行参数。
在此处查看更多详情:http://commons.apache.org/proper/commons-cli/
希望这有帮助。