如何在Java中为命令行参数设置标志?
我有一个用于25个应用程序的枚举和一个用于某些环境的枚举 现在使用我的代码,我可以不传递任何参数,在所有环境中运行所有应用程序(这是我想要的),或者我可以按照它将运行的顺序传递一个应用程序和一个环境。我需要能够通过执行类似-app app1 app2 app3的操作来传递应用程序列表-环境1环境2 我以前从未使用过标志,也从未尝试过解析命令数组。这是部分代码。我认为if很好,但else是我需要帮助的地方如何在Java中为命令行参数设置标志?,java,command-line-arguments,Java,Command Line Arguments,我有一个用于25个应用程序的枚举和一个用于某些环境的枚举 现在使用我的代码,我可以不传递任何参数,在所有环境中运行所有应用程序(这是我想要的),或者我可以按照它将运行的顺序传递一个应用程序和一个环境。我需要能够通过执行类似-app app1 app2 app3的操作来传递应用程序列表-环境1环境2 我以前从未使用过标志,也从未尝试过解析命令数组。这是部分代码。我认为if很好,但else是我需要帮助的地方 public static Application chooseAppTest(String
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);
}
尽管这可能无法直接回答您的问题,但我强烈建议您为此使用库。一些广泛使用的选项:
//class MyOptions
@Parameter(names = { "-d", "--outputDirectory" }, description = "Directory")
private String outputDirectory;
然后使用以下命令解析bean:
public static void main(String[] args){
MyOptions options = new MyOptions();
new JCommander(options, args);
}
尽管这可能无法直接回答您的问题,但我强烈建议您为此使用库。一些广泛使用的选项:
//class MyOptions
@Parameter(names = { "-d", "--outputDirectory" }, description = "Directory")
private String outputDirectory;
然后使用以下命令解析bean:
public static void main(String[] args){
MyOptions options = new MyOptions();
new JCommander(options, args);
}
问题是什么?它不起作用吗?顺便说一句,更好的设计应该是命令模式实现试试这个:;)你为什么又问同样的问题?问题是什么?它不起作用吗?顺便说一句,更好的设计应该是命令模式实现试试这个:;)你为什么又问同样的问题?