El lenguaje Java sigue las convenciones de UNIX que definen tres tipos diferentes de argumentos.
- Palabras (tambi�n conocidos como opciones)
- Argumentos que requieren argumentos
- Banderas
Adem�s, una aplicaci�n debe observar las siguientes convenciones para utilizar los argumentos de la l�nea de comandos en Java.
- El gui�n ( - ) precede a las opciones, banderas o series de banderas.
- Los argumentos pueden ir en cualquier orden, excepto cuando sea un argumento que requiere otros argumentos.
- Las banderas pueden listarse en cualquier orden, separadamente o combinadas.
-xn o -nx o -x -n.
- T�picamente los nombres de fichero van al final.
- El programa imprime un mensaje de error de utilizaci�n cuando no se reconoce un argumento de la l�nea de comandos. Estas sentencias pueden tener esta forma.
utilizaci�n: nombre_aplicaci�n [ argumentos_opcionales ] argumentos_requeridos
�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.