java可以通过类gnu.getopt.Getopt 获取命令行参数。
参考文献:
http://www.urbanophile.com/arenn/hacking/getopt/gnu.getopt.Getopt.html#_top_
示例注释:
<1> a 后没有冒号,表示不要求跟参数
<2> b 后跟一个冒号,表示其后必须有一个参数: 命令行模式下的合法格式为 -bPARAM 或 -b PARAM(PARAM为假设的参数)。
<3> c 后跟两个冒号,表示其后可选有一个参数:命令行模式下的合法格式为 -cPARAM (注意:这里PARAM必须紧跟c,中间不能有空格)。
<4> 长选项的定义相同,但用逗号分割。
<5> 返回值:如果找到符合的参数则返回此参数字母,如果参数不包含在参数optstring 的选项字母则返回“?”字符,分析结束则返回-1。
参考文献:
http://www.urbanophile.com/arenn/hacking/getopt/gnu.getopt.Getopt.html#_top_
示例:
假设一个java应用可以从命令行获取三个参数 ( $ java -jar myJavaTest -a -b Param -cParam )
示例注释:
<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>