我想在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)")
}
}
}
答案 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;
}