小编use*_*792的帖子

你如何从命令行参数中分割字符串? - Java

基本上在命令行中,我的论点将是类似的

-app app1 app2 app3 -env env1 env2 //the number can go higher then 3 and 2 
Run Code Online (Sandbox Code Playgroud)

我有一个应用程序的枚举和envs的枚举

我知道最简单的方法是使用库并使用它们,但这对我来说不是一个选择.我试图从Java拆分命令行参数中读取内容

传递带有空格的命令行参数 并将它们放在一起但它没有用完

我认为我需要做的是拆分,当我看到"-app"然后将其后的内容添加到列表中,直到我看到"-env"所以我想要拆分" - ".我从不拆分命令行参数或数组.这就是我到目前为止所尝试的.(我把if部分拿出来因为我知道那个部分正在工作,并且不涉及任何事情)

public static void main(String[] args) 
{
    boolean sawApp = false;
    boolean sawEnv = false;
    List<String> appList = new ArrayList();
    List<String> envList = new ArrayList();


    else if(args.length > 0)
    {
        for(int i = 0; i < args.length; i ++)
        {
            if(args.equals("-app"))
            {
                sawApp = true;
                String[] apps = //this is where I am stuck …
Run Code Online (Sandbox Code Playgroud)

java split command-line-arguments

1
推荐指数
1
解决办法
1615
查看次数

你如何在 Java 中为命令行参数制作标志?

我有一个用于 25 个应用程序的枚举和一个用于某些环境的枚举。

现在使用我拥有的代码,我可以不传递任何参数并在所有环境中运行所有应用程序(这是我想要的),或者我可以按顺序传递一个应用程序和一个环境,它将运行它。我需要能够通过执行类似 -app app1 app2 app3 ... -env env1 env2 ...

我以前从未使用过标志,也从未尝试过解析命令数组。这是代码的一部分。我认为 if 很好,但 else 是我需要帮助的地方。

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);
    }
Run Code Online (Sandbox Code Playgroud)

java command-line-arguments

0
推荐指数
1
解决办法
9386
查看次数

标签 统计

command-line-arguments ×2

java ×2

split ×1