Si alguna vez te preguntaste, ¿Para qué es el public static void main(String[] args)? o ya sabés que es pero no como usarlo, éste es tu post.
En pocas palabras las aplicaciones de Java aceptan parámetros desde la Línea de comandos / Consola, lo que permite al usuario pasar diferentes configuraciones desde el momento que se inicia una aplicación.
Entonces, supongamos que nuestra aplicación se lanza de la siguiente manera:
java -jar TestArgs.jar Hola Mundo
Entonces, el valor de “String[] args” será el siguiente:
args[0] = "Hola"; args[1] = "Mundo";
Entonces empecemos a jugar un poco con esto.
Formas de pasar parámetros
Hay de seguro 3 formas comunmente utilizadas:
java -jar TestArgs.jar Hola Mundo java -jar TestArgs.jar -h java -jar TestArgs.jar --mode=gui
En el siguiente ejemplo voy a usar tanto el segundo como el tercer modo.
Un Ejemplo un poco más real
Vamos a suponer lo siguiente, tenemos un proyecto, que puede ejecutarse tanto en modo gráfico como en modo texto y el comportamiento se indica con el parametro siguiente:
Imprime la ayuda de inicio (para consola):
java -jar TestArgs.jar -h
Corre el programa en modo texto (para consola):
java -jar TestArgs.jar --mode=text
Corre el programa en modo grágico (Swing)(Defecto):
java -jar TestArgs.jar --mode=gui
Entonces preparemos para recibir parametros:
// MANEJO DE LOS PARAMETROS DEL SISTEMA
if (args.length > 0)
{
// Si ingresa un modo
for (String key: args)
{
if(key.toUpperCase().equals("--MODE=TEXT"))
{
// Modo texto
SERVER_MODE = SERVER_MODE_TEXT;
}
if(key.toUpperCase().equals("--MODE=GUI"))
{
// Modo gráfico
SERVER_MODE = SERVER_MODE_TEXT;
}
if(key.toUpperCase().equals("-H"))
{
// Imprimo la ayuda y salgo
System.out.println("Modo de Uso:");
System.out.println("\t --mode=[gui;text] Inicia el Server en modo gráfico (gui) o en modo consola (text)");
System.out.println("\t -h Muestra este mensaje de ayuda");
System.exit(0);
}
}
}
// Si es cero va todo por defecto
Así pudimos tomar los parámetros, recorrerlos y actuar en consecuencia, hay cientos de maneras de utilizarlos usá el que más creas conveniente.
Para seguir jugando un poco
El siguiente código imprime en pantalla todos los parámetros, para así saber como llegan y como parsearlos:
// IMPRIME TODOS LOS PARAMETROS
for (String s: args)
{
System.out.println(s);
}
