Analizar Argumentos de la Línea de Comandos
Este programa, llamado
ParseCmdLine, proporciona una forma básica para construir tu propio analizador de argumentos:
class ParseCmdLine {
public static void main(String[] args) {
int i = 0, j;
String arg;
char flag;
boolean vflag = false;
String ficheroSalida = "";
while (i < args.length && args[i].startsWith("-")) {
arg = args[i++];
// Utiliza este tipo de chequeo para argumentos de "palabra"
if (arg.equals("-verboso")) {
System.out.println("modo verboso mode activado");
vflag = true;
}
// Utiliza este tipo de chequeo para argumentos que requieren argumentos
else if (arg.equals("-output")) {
if (i < args.length)
ficheroSalida = args[i++];
else
System.err.println("-output requiere un nombre de fichero");
if (vflag)
System.out.println("Fichero de Salida = " + ficheroSalida);
}
// Utiliza este tipo de chequeo para una serie de banderas
else {
for (j = 1; j < arg.length(); j++) {
flag = arg.charAt(j);
switch (flag) {
case 'x':
if (vflag) System.out.println("Opción x");
break;
case 'n':
if (vflag) System.out.println("Opción n");
break;
default:
System.err.println("ParseCmdLine: opción ilegal " + flag);
break;
}
}
}
}
if (i == args.length)
System.err.println("Utilización: ParseCmdLine [-verboso] [-xn]
[-output unfichero] nombre de Fichero");
else
System.out.println("Correcto!");
}
}
Acepta un argumento de cada uno de los tipos: un argumento de palabra, un argumento que requiere un argumento y dos banderas. Además, este programa necesita un nombre de fichero. Aquí tienes una sentencia de utilización de este programa:
Utilización: ParseCmdLine [-verboso] [-xn] [-output unfichero] nombrefichero
Los argumentos entre los corchetes son opciones: el argumento
nombrefichero es obligatorio.
Ozito