如何使用命令行参数选择程序中的方法?例如,如果我希望我的程序处理一个名为Moon.jpg的图像,我如何让它工作,以便命令行中的-S Moon.jpg会调用Scale方法?或-HI Moon.jpg会水平翻转图像并反转它?我编写了一些方法,当我正常运行程序时它们可以工作。
答案 0 :(得分:3)
http://commons.apache.org/cli/
这应该有所帮助。以下是如何使用它: http://commons.apache.org/cli/usage.html
答案 1 :(得分:3)
您可以使用如下函数解析参数:
private void parseArguments(String[] args)
{
int i = 0;
String curArg;
while (i < args.length && args[i].startsWith("-"))
{
curArg = args[i++];
if ("-S".compareTo(curArg) == 0)
{
if (i < args.length)
{
String image = args[i++];
processImage()
}
else
{
// ERROR
}
}
}
}
你的main方法应该总是有String [] args,它包含在空格字符上拆分的参数。您还可以使用大量库来解析命令行参数。此方法与Apaches CLI库使用的方法非常相似(当然,该库附带的内容更多,但解析器使用此逻辑)。
答案 2 :(得分:0)
您可能需要为每个目的编写不同的方法,并根据命令输入使用if / else条件。
答案 3 :(得分:0)
为什么不读取传递的参数并读取后续值来执行所需的操作 即,
java yourprogram -a1 something -a2 somethingelse
并在你的程序中
public static void main(String[] args){
for(int i=0;i<args.length;i++){
switch(args[i]){//you can use if-else to deal with string...
case "-a1":read args[i+1] to get value to do somethng
case "-a2": read args[i+1] to get value to do something else
}
}