java可以通过类gnu.getopt.Getopt 获取命令行参数。
参考文献:

http://www.urbanophile.com/arenn/hacking/getopt/gnu.getopt.Getopt.html#_top_

示例:

假设一个java应用可以从命令行获取三个参数 ( $ java -jar  myJavaTest -a -b Param -cParam )

ab:c::


示例注释:


<1> a 后没有冒号,表示不要求跟参数


<2> b 后跟一个冒号,表示其后必须有一个参数: 命令行模式下的合法格式为 -bPARAM 或 -b PARAM(PARAM为假设的参数)。


<3> c 后跟两个冒号,表示其后可选有一个参数:命令行模式下的合法格式为 -cPARAM (注意:这里PARAM必须紧跟c,中间不能有空格)。


<4> 长选项的定义相同,但用逗号分割。


<5> 返回值:如果找到符合的参数则返回此参数字母,如果参数不包含在参数optstring 的选项字母则返回“?”字符,分析结束则返回-1。



代码示例:

<span style="font-size:14px;">import  gnu.getopt.Getopt;

 public static void main(String args[]) {

        Getopt testOpt  = new Getopt(args[0], args, "ab:c:");
        int res;
        while( (res = testOpt.getopt()) != -1 ) {
          switch(res) {
            case 'a':
              break;
            case 's':
              String bParam = testOpt.getOptarg();
              System.out.println("bParam: " + bParam);
              break;
            case 'c':
              String cParam = testOpt.getOptarg();
              System.out.println("cParam: " + cParam);
              break;
            default:
              System.out.println(c);
          }
        }
}</span>