使用来自控制台JAVA的参数

时间:2013-04-18 09:23:29

标签: java console

我想在ubuntu中使用控制台中的参数

  

./ myTool -ip 1.2.3.4

我怎样才能在我的代码中使用1.2.3.4

public static void main(String[] argv) throws Exception
{


    for(int i=0;i<argv.length;i++)
    {
        if (argv[i].equals("-ip"))
        {

         ping(80,"The ip that i want(1.2.3.4)")
        }
     }
}

3 个答案:

答案 0 :(得分:2)

尝试:

public static void main(String[] argv) throws Exception
{
    for(int i=0;i<argv.length;i++)
    {
        if (argv[i].equals("-ip") && argv.length > i+1)
        {
            ping(80, argv[i+1]);
        }
    }
}

假设您实施了ping

答案 1 :(得分:2)

对于解析cmdline参数的更通用的方法,我建议使用一个已经存在的框架 - 它们为您完成所有繁重的工作。

看看JOpt Simple - 这个用于例如。 OpenJDK的。

答案 2 :(得分:2)

您可以将所需的行为封装到您自己设计的对象中,也可以使用已存在的行为,例如来自Apache的this one

你必须确保它们成对出现。像这样:

public static Map<String, String> getArgsMap(String [] args) { 
    Map<String, String> pairs = new HashMap<String, String>();
    if ((args != null) && (args.length > 1) && (args.length % 2) == 0) {
        for (int i = 0; i < args.length; i += 2) {
            pairs.put(args[i], args[i+1]);
        }
    }
    return pairs;
}