Uso de argumentos de línea de comandos en una aplicación Java

Los argumentos de la línea de comandos pueden ser una forma de especificar propiedades de configuración para una aplicación, y Java no es diferente. En lugar de hacer clic en el icono de una aplicación desde el sistema operativo, puede ejecutar la aplicación Java desde una ventana de terminal. Junto con el nombre de la aplicación, se pueden seguir varios argumentos que luego se pasan al punto de partida de la aplicación (es decir, el método principal, en el caso de Java).

Por ejemplo, NetBeans tiene una serie de parámetros de inicio que se pueden pasar a la aplicación cuando se ejecuta desde una ventana de terminal (p. Ej..,

especifica una versión del JDK que se utilizará en lugar del JDK predeterminado asociado con la aplicación NetBeans).

El método principal

Examinemos el método principal para ver dónde aparecen los argumentos pasados ​​a una aplicación:

Los argumentos de la línea de comandos se pueden encontrar en

llamado

Por ejemplo, consideremos una aplicación llamada

cuya única acción es imprimir los argumentos de la línea de comandos que se le pasan:

clase pública CommandLineArgs  
   public static void main (String [] args) 
// verifica si la matriz de cadenas está vacía
if (args.length == 0)

System.out.println ("¡No se pasaron argumentos de la línea de comandos!");
       // Para cada cadena en la matriz de cadenas
// imprime la cadena.
para (argumento de cadena: args)

System.out.println (argumento);


 

Sintaxis de los argumentos de la línea de comando

Java Runtime Engine (JRE) espera que los argumentos se pasen siguiendo una sintaxis particular, de esta manera:

Java ProgramName valor1 valor2

Arriba, "java" invoca el JRE, seguido del nombre del programa al que está llamando. Estos son seguidos por cualquier argumento al programa. No hay límite para la cantidad de argumentos que puede tomar un programa, pero el orden es crítico. El JRE pasa los argumentos en el orden en que aparecen en la línea de comando. Por ejemplo, considere este fragmento de código desde arriba:

clase pública CommandLineArgs2  
   public static void main (String [] args) 
if (args.length == 0)

System.out.println ("¡No se pasaron argumentos de la línea de comandos!");

Cuando se pasan argumentos a un programa Java, args [0] es el primer elemento de la matriz (valor1 arriba), args [1] es el segundo elemento (valor2), y así sucesivamente. El código args.length () define la longitud de la matriz.

Pasar argumentos de línea de comandos

En NetBeans, podemos pasar argumentos de línea de comandos sin tener que compilar la aplicación y ejecutarla desde una ventana de terminal. Para especificar los argumentos de la línea de comandos:

  1. Haga clic derecho en la carpeta del proyecto en el
    Proyectos
    ventana.
  2. Elegir la
    Propiedades
    opción de abrir 
    Propiedades del proyecto
    ventana. 
  3. En el
    Categorias
    lista en el lado derecho, elija
    correr
  4. En el
    Argumentos
    cuadro de texto que aparece, especifique los argumentos de la línea de comandos que desea pasar a la aplicación. Por ejemplo, si ingresamos
    Manzana Banana Zanahoria
    en el
    Argumentos
    cuadro de texto y ejecutar el
    CommandLineArgs
    programa enumerado anteriormente, obtendremos la salida:

Analizando los argumentos de la línea de comandos

Por lo general, se pasa un argumento de línea de comando con información sobre qué hacer con el valor que se pasa. El argumento que informa a la aplicación para qué es el argumento generalmente tiene un guión o dos antes de su nombre. Por ejemplo, el ejemplo de NetBeans para el parámetro de inicio que especifica la ruta JDK es

Esto significa que tendrá que analizar los argumentos de la línea de comandos para descubrir qué hacer con los valores. Existen varios marcos de línea de comandos Java para analizar argumentos de línea de comandos. O podría escribir un analizador de línea de comandos simple si los argumentos que necesita pasar no son tantos:

El código anterior imprime los argumentos o los agrega si son enteros. Por ejemplo, este argumento de línea de comando agregaría los números:

java CommandLineArgs -addnumbers 11 22 33 44