如何选择程序中的方法以使用命令行参数运行?例如,如果我希望我的程序处理一个名为 Moon.jpg 的图像,我该如何让它工作,以便命令行中的 -S Moon.jpg 调用 Scale 方法?或者 -HI Moon.jpg 会水平翻转图像并反转它?我写了一些方法,当我正常运行程序时它们可以工作。
4 回答
            3        
        
		
http://commons.apache.org/cli/
这应该会有所帮助。以下是如何使用它: http ://commons.apache.org/cli/usage.html
于 2012-08-01T18:31:52.910   回答
    
    
            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 库使用的方法非常相似(当然,该库附带的还有很多,但解析器使用此逻辑)。
于 2012-08-01T18:53:10.307   回答
    
    
            0        
        
		
您可能需要为每个目的编写不同的方法,并根据命令输入设置 if/else 条件。
于 2012-08-01T18:33:18.353   回答
    
    
            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
 }
}
    于 2012-08-01T18:55:00.827   回答