我照着书上写了一个关于命令行参数的小程序,我试着改了一下,想让它识别/?来达到-help的效果,来显示帮助信息,可是总是识别为/C,不知道为什么?
public class CommandArgs{
private static String usageMsg="Usage: CommandArgs[options]\n"
+"Where[options] are:\n"
+"-help                  显示帮助信息\n"
+"-n                     设置参数的名字\n"
+"-v                     设置参数的值\n";

public static void main(String[] args){
String name=null,value=null;
for(int i=0;i<args.length;i++){
if(args[i].equals("-n")){
if((++i)==args.length){
System.out.println("-n requires an argument! ");
System.exit(-1);
}
name=args[i];
}else if(args[i].equals("-v")){
if((++i)==args.length){
System.out.println("-v requires an argument! ");
System.exit(-1);
}
value=args[i];
}else if(args[i].equalsIgnoreCase("-help")||(args[i].equals("/?"))){
System.out.println(usageMsg);
System.exit(0);
}else{
System.out.println("argument not recognized: "+args[i]);
System.exit(-1);
}
}
if(args.length!=0){
System.out.println("name: "+name+" ; value: "+value);
}else{
System.out.println(usageMsg);
}
}
}

解决方案 »

  1.   

    补充下,当我在命令提示符下敲入 java CommandArgs /?回车显示
    argument not recognized: /C
    但是当我把代码//}else if(args[i].equalsIgnoreCase("-help")||(args[i].equals("/?"))){// 中的/?换成/C再去命令提示符下敲入 java CommandArgs /?回车却能显示帮助信息
    是不是说在命令提示符下键入的/?是代表/C这个东西啊?