Logo

dev-resources.site

for different kinds of informations.

¿Para qué sirve String[] args en el método main de Java?

Published at
12/25/2024
Categories
java
programming
beginners
spanish
Author
asjordi
Author
7 person written this
asjordi
open
¿Para qué sirve String[] args en el método main de Java?

El método main nos permite especificar el código que queremos que se ejecute cuando lanzamos nuestra aplicación, de esta manera la clase donde se encuentra será la clase principal o punto de entrada de nuestra aplicación. Por ejemplo, consideremos la siguiente clase Main que contiene el método main:

public class Main {
    public static void main(String[] args) {
        System.out.println("Hola Mundo!");
    }
}
Enter fullscreen mode Exit fullscreen mode

En versiones recientes de Java podemos ejecutar esta clase desde la terminal con el comando java Main.java y veremos que se imprime en la consola el mensaje Hola Mundo! (o desde el propio IDE). El comando que ejecutamos se compone de dos partes, la primera es java que es el comando que se encarga de ejecutar el código Java y la segunda es Main.java que es el nombre de la clase que contiene el método main, en este punto estamos utilizando el concepto de pasar argumentos a algo, en este caso el nombre de la clase que queremos ejecutar.

Nota: Comúnmente se utiliza el signo - seguido de una letra o palabra para indicar que se trata de un argumento, por ejemplo -version para obtener la versión de Java que tenemos instalada en nuestro sistema. Cada programa puede tener sus propios argumentos y significados.

java -version
Enter fullscreen mode Exit fullscreen mode

Entendiendo esto, el propósito de String[] args es permitirnos pasar argumentos a nuestra aplicación al momento que la ejecutamos, por lo que cualquier argumento que coloquemos después del nombre de la clase será almacenado en el arreglo args y podremos acceder a ellos desde el método main. De esta forma, si ejecutamos java Main.java todo lo que pongamos después de Main.java (nombre de la clase) y separado por un espacio será considerado un argumento y almacenado en el arreglo args.

Comencemos ejecutando nuestra aplicación sin pasar ningún argumento e imprimiendo el arreglo args por consola con la ayuda del método Arrays.toString:

import java.util.Arrays;

public class Main {
    public static void main(String[] args) {
        System.out.println(Arrays.toString(args));
    }
}
Enter fullscreen mode Exit fullscreen mode
java Main.java

# Salida
[]
Enter fullscreen mode Exit fullscreen mode

Obtenemos un arreglo vacío, ya que no estamos pasando ningún argumento, pero si ejecutamos el siguiente comando obtenemos un resultado diferente:

java Main.java hola mundo

# Salida
[hola, mundo]
Enter fullscreen mode Exit fullscreen mode

Estamos pasando dos argumentos hola y mundo y estos son manejados como args en el método main, por lo que podemos acceder y realizar operaciones con ellos, podemos pasar tantos argumentos como sean necesarios. Al final el propósito de String[] args es almacenar todos los argumentos que pasamos al ejecutar nuestra aplicación y permitirnos acceder a ellos desde el método main. La parte más complicada es procesar todos los argumentos que se reciben, por ejemplo, para realizar una aplicación de línea de comandos tenemos que procesar, validar y convertir los argumentos para que sean útiles en nuestra aplicación.

Ejemplo

Queremos hacer una pequeña aplicación que reciba por consola 3 parámetros en el siguiente orden:

  1. Número 1
  2. Operador aritmético
  3. Número 2

A partir de estos parámetros realizaremos la operación correspondiente y mostraremos el resultado en consola. Para ello, primero validamos que se pasen los 3 argumentos, convertimos los argumentos a los tipos de datos correspondientes, en este caso el primer y tercer argumento al tipo int (números), y como los argumentos son cadenas de texto no es necesario convertir el operador aritmético. Posteriormente, realizamos la operación correspondiente y mostramos el resultado en consola.

public class Main {
    public static void main(String[] args) {
        if (args.length != 3) {
            System.out.println("Debes pasar 3 argumentos: Número 1, Operador aritmético y Número 2");
            return;
        }

        int num1 = Integer.parseInt(args[0]);
        int num2 = Integer.parseInt(args[2]);
        String operador = args[1];
        int resultado = 0;

        switch (operador) {
            case "+" -> resultado = num1 + num2;
            case "-" -> resultado = num1 - num2;
            case "*" -> resultado = num1 * num2;
            case "/" -> resultado = num1 / num2;
            default -> {
                System.out.println("Operador aritmético no válido");
                return;
            }
        }

        System.out.println(num1 + " " + operador + " " + num2 + " = " + resultado);
    }
}
Enter fullscreen mode Exit fullscreen mode

Ahora podemos ejecutar nuestra aplicación desde la terminal y pasar los argumentos correspondientes:

java Main.java 10 + 5

# Salida
10 + 5 = 15
Enter fullscreen mode Exit fullscreen mode
java Main.java 10 - 5

# Salida
10 - 5 = 5
Enter fullscreen mode Exit fullscreen mode

El poder pasar argumentos a una aplicación en Java no es algo único de la terminal, también se puede realizar desde el IDE, que es como comúnmente se trabaja, por ejemplo, si utilizamos IntelliJ IDEA podemos pasar argumentos desde la configuración de ejecución de la aplicación.

Ejecución de la aplicación con argumentos en IntelliJ IDEA

En conclusión, podemos notar que este es un mecanismo flexible para poder pasar argumentos a nuestra aplicación y permitirnos realizar acciones específicas con base en sus valores, aunque puede ser complicado de manejar, para estos casos podemos utilizar implementaciones que nos faciliten el trabajo como Apache Commons CLI o JCommander. Si quieres ver otro ejemplo de como se puede utilizar String[] args en una aplicación de línea de comandos puedes revisar el siguiente enlace.

spanish Article's
30 articles in total
Favicon
Cómo gestionar tus proyectos de software con Github
Favicon
Más Allá del Código: La Importancia de la Resolución de Problemas para Destacar como Programador
Favicon
Configurar servidor de archivos local con Ubuntu y Samba
Favicon
Envias Correo Electrónicos gratis con Resend Emails
Favicon
Git avanzado: ¿Qué es cherry pick? 🍒
Favicon
Desplegar un contenedor de Docker desde Azure Container Registry en una WebApp
Favicon
Cómo puedes llegar a ser AWS Cloud Club Captain (consejos de una capitana!)
Favicon
¿Elegimos el lenguaje de programación o el destino lo elige por nosotros?
Favicon
Proyecto Lombok en Java
Favicon
Crear software: Juego de personas
Favicon
"Escapando" de IntelliJ
Favicon
Las claves para NO romperlo TODO: Branches en Git 🚨🔑
Favicon
Git: haz que todos amen leer tus commits
Favicon
¿Qué son los enums en Java?
Favicon
Puede la IA reemplazar los trabajos de desarrollo? Vamos a hablar de ello!
Favicon
¿Para qué sirve String[] args en el método main de Java?
Favicon
La dualidad de tu profesión.
Favicon
Cómo instalar el JDK de Java usando Temurin en Windows
Favicon
Aprende a programar con Python y Thonny 🐍
Favicon
¡Primeros pasos en GIT! GIT para PRINCIPIANTES
Favicon
¿Qué es GIT, por qué TODOS los developers lo usan?: Historia de GIT
Favicon
Try with resources en Java
Favicon
Redes neuronales convolucionales (CNN) y redes neuronales recurrentes (RNN)
Favicon
JSON Web Tokens (JWT): Guía Esencial y Buenas Prácticas
Favicon
Cómo instalar el OpenJDK de Java en Windows
Favicon
Cómo Desarrollé MemoMate: Un Asistente Personal en Telegram con IA
Favicon
Cómo ver los campos de tu WordPress de un modo diferente
Favicon
Construyendo un Sistema de Asistencia con Reconocimiento Facial Usando Next.js y FACEIOm
Favicon
JSON#: nuestro propio lector/escritor
Favicon
Recursos para AWS Certified Cloud Practitioner

Featured ones: