Convenciones para los Argumentos de la Línea de Comandos

El lenguaje Java sigue las convenciones de UNIX que definen tres tipos diferentes de argumentos: Además, una aplicación debe observar las siguientes convenciones para utilizar los argumentos de la línea de comandos en Java:

Opciones

Los argumentos como -verbose son argumentos de palabra y deben especificarse completamente en la línea de comandos. Por ejemplo, -ver no correspondería con -verbose.

Se pueden utilizar sentencias como esta para comprobar los argumentos de palabras:

if (argument.equals("-verbose"))
    vflag = true;
Esta sentencia comprueba si la palabra -verbose está en la línea de argumentos y activa una bandera en el programa para que este se ejecute en modo verboso.

Argumentos que Requieren Argumentos

Algunos argumentos necesitan más informaión. Por ejemplo, un argumento como -output podría permitir que el usuario redirigiera la salida del programa. Sin embargo, la opción -output en solitario no ofrece la información suficiente a la aplicación: ¿Cómo sabe la aplicación dónde redirigir la salida? Por lo tanto el usuario debe especificar también un nombre de fichero. Normalmente, el ítem siguiente de la línea de comandos proporciona la información adicional para el argumento que así lo requiere. Se puede utilizar la siguiente sentencia para emparejar argumentos que requieren argumentos:
if (argument.equals("-output")) {
    if (nextarg < args.length)
        outputfile = args[nextarg++];
    else
        System.err.println("-output requiere un nombre de fichero");
}
Observa que el código se asegura de que el usuario ha especificado realmente un argumento siguiente antes de intentar utilizarlo.

Banderas

Lss banderas son carácteres que modifican el comportamieneo del programa de alguna manera. Por ejemplo, la bandera -t proporcionada al comando ls de UNIX indica que la salida debe ordenarse por la fecha de los ficheros. La mayoría de las aplicaciones permiten al usuario especificar banderas separadas en cualquier orden:
-x -n     o    -n -x
Además, para hacer un uso más sencillo, las aplicciones deberán permitir que el usuario concatene banderas y las especifique en cualquier orden:
-nx    o    -xn
El programa de ejemplo descrito en la página siguiente implementa un sencillo algoritmo para procesar banderas que pueden especificarse en cualquier orden, separadas o de forma combinada.


Ozito