Argumentos de la línea de comandos

Una aplicación Java puede aceptar cualquier número de argumentos de la línea de comandos. Esto permite al usuario especificar información de configuración cuando se lanza la aplicación.

El usuario introduce los argumentos de la línea de comandos cuando invoca la aplicación y los especifica después del nombre de la clase que se va a ejecutar. Por ejemplo, supongamos que una aplicación Java llamada Sort ordena las líneas de un archivo. Para ordenar los datos de un archivo llamado friends.txt, un usuario introduciría:

java Sort friends.txt

Cuando se lanza una aplicación, el sistema de tiempo de ejecución pasa los argumentos de la línea de comandos al método principal de la aplicación a través de una matriz de Strings. En el ejemplo anterior, los argumentos de la línea de comandos se pasan a la aplicación Sort en un array que contiene un único String"friends.txt".

Estado de los argumentos de la línea de comandos

El ejemplo Echo muestra cada uno de sus argumentos de la línea de comandos en una línea por sí mismo:

public class Echo { public static void main (String args) { for (String s: args) { System.out.println(s); } }}

El siguiente ejemplo muestra cómo un usuario podría ejecutar Echo. La entrada del usuario está en cursiva.

java Echo Drink Hot JavaDrinkHotJava

Nota que la aplicación muestra cada palabra DrinkHot, y Java en una línea por sí misma. Esto se debe a que el carácter de espacio separa los argumentos de la línea de comandos. Para que DrinkHot, y Java se interpreten como un único argumento, el usuario deberá unirlos encerrándolos entre comillas.

java Echo "Drink Hot Java"Drink Hot Java

Parificación de argumentos numéricos en la línea de comandos

Si una aplicación necesita admitir un argumento numérico en la línea de comandos, debe convertir un argumento String que represente un número, como «34», en un valor numérico. Aquí hay un fragmento de código que convierte un argumento de línea de comandos en un int:

int firstArg;if (args.length > 0) { try { firstArg = Integer.parseInt(args); } catch (NumberFormatException e) { System.err.println("Argument" + args + " must be an integer."); System.exit(1); }}

parseInt lanza un NumberFormatException si el formato de args no es válido. Todas las clases NumberIntegerFloatDouble, y así sucesivamente tienen parseXXX métodos que convierten un String que representa un número en un objeto de su tipo.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *