我有25个应用程序的枚举和某些环境的枚举。
现在使用我拥有的代码我可以不传递任何参数,它可以在所有环境中运行所有应用程序(这就是我想要的)或者我可以按顺序传递一个应用程序和一个环境它将运行那。我需要通过像-app app1 app2 app3 ... -env env1 env2 ...
这样做来传递应用列表我之前从未使用过标记或尝试过解析过一系列命令。这是代码的一部分。我认为if是好的,但其他地方是我需要帮助的地方。
public static Application chooseAppTest(String[] args)
{
Application application = null;
switch (Application.valueOf(args[0]))
{
case ACCOUNTINVENTORY:
new AccountInventory(Environment.valueOf(args[1]));
AccountInventory.accountInventoryDatabaseTests(testResults);
break;
public static void main(String[] args)
{
// run tests and collect results
if (args.length == 0)
{
LogIn.loginTest(testResults);
DatabaseTest.testResults(testResults);
LinkTest.linkTests(testResults);
}
else
{
// First choose application, then choose environment
Application.chooseAppTest(args);
}
答案 0 :(得分:3)
即使这可能不会直接回答您的问题,但我强烈建议您使用库。一些广泛使用的选项:
毕竟,“生命太短,无法解析命令行参数”。作为示例(使用JCommander),您只需要通过注释定义参数:
//class MyOptions
@Parameter(names = { "-d", "--outputDirectory" }, description = "Directory")
private String outputDirectory;
然后使用:
解析你的beanpublic static void main(String[] args){
MyOptions options = new MyOptions();
new JCommander(options, args);
}