Botón para abrir el Menú Botón para cerrar el Menú
Logo da empresa Alura
Iniciar Sesión Nuestros Planes
Formaciones Conoce a Luri
  • Programación _
  • Front End _
  • Data Science _
  • DevOps _
  • Innovación y Gestión _
Artículos de Tecnología > Programación

¿Para qué sirve String[] args en Java?

Alex Felipe
Alex Felipe
24/07/2022

Compartir

Mira este artículo:
  1. Enviando el parámetro args en ejecución

portada de java

codigo en la linea de comandos

Completé una funcionalidad más de mi aplicación y necesito probarla. Pero mi aplicación tiene el entorno de desarrollo, prueba y producción:


public class Main { 
	public static void main(String[] args) { 
	String entorno = "";  
		if(entorno.equals("DEVELOPMENT")){     
					System.out.println("ejecutando código del desarrollo");     
		} else if (entorno.equals("TEST")){          
			System.out.println("ejecutar código del prueba");     
		 else if (entorno.equals("PRODUCTION")){	
    		 			System.out.println("ejecutando código del producción");     
		}  
	}
}

Ahora voy a usar la clase Scanner, para hacer la lectura por el teclado para probar mi código:


Scanner sc = new Scanner(System.in);
System.out.println("Informar el  entorno");
String entorno = sc.nextLine();
    

Resultado:


Informar el entorno DEVELOPMENT ejecutando código de desarrollo
    

Pero... Además de ser agotador, existe la posibilidad de que me equivoque y ejecutar un entorno por error o incluso no ejecutar ninguno. ¿Cómo puedo hacer para que al ejecutar mi programa, entienda qué entorno ejecutar? ¡Por el parámetro args del método main!


public static void main(String[] args) {     
		String ambiente = args[0]; //código
}

¿Pero esa variable no sirve?

El parámetro args es un array que recibe datos de la command line (línea de comando), es decir, en el momento en que ejecutamos nuestra aplicación es posible enviar una información por medio de él.

Enviando el parámetro args en ejecución

Luego haremos la prueba enviando el valor DEVELOPMENT durante la ejecución de la clase Main:

codigo en la linea de comandos

¡Genial! Ahora no tendré que escribir el entorno a cada rato, pero... Todavía tengo que escribir en la línea de comandos...

Por lo tanto, podemos terminar errando el parámetro en algún momento... Para resolver el problema, simplemente crearemos archivos .bat para cada uno de los entornos!

DEVELOPMENT.bat:

java Main DEVELOPMENT

PRODUCTION.bat:

java Main PRODUCTION

TEST.bat:

java Main TEST

Probando los ambientes:

codigo en la linea de comandos

codigo en la linea de comandos

codigo en la linea de comandos

Excelente! Ahora puedo probar mi aplicación en varios entornos sin ninguna preocupación! ¿Y si necesito saber, por ejemplo, qué versión de java se está ejecutando en cada entorno?

Podemos usar Properties de la clase System y tomar una propiedad del entorno mediante el método getProperty():


//código
if(ambiente.equals("DEVELOPMENT")){     
		System.out.println("Versión del Java: " + System.getProperty("java.version"));System.out.println("ejecutando código del desarrollo"); 
} 
//código

Probando el entorno de desarrollo:

codigo en la linea de comandos

¡Excelente! ¡Ahora puedo comprobar si mi entorno se está ejecutando en una versión esperada! Podríamos recopilar otra información a través de getProperty(), como usuario (user.name) o sistema operativo (os.name).

¿Alguna vez has pasado por una situación en la que necesites probar diferentes entornos? ¿Qué opina de esta alternativa utilizando String[] args y Properties de la clase System?

imagen de perfil

Alex Felipe Victor Vieira

Alex es instructor y desarrollador y tiene experiencia en Java, Kotlin, Android. Creador de más de 40 cursos como Kotlin, Flutter, Android, persistencia de datos, comunicación de API web, personalización de pantalla, pruebas automatizadas, arquitectura de aplicaciones y Firebase. Es experto en Programación Orientada a Objetos, siempre con el objetivo de compartir las mejores prácticas y tendencias en el mercado de desarrollo de software. Trabajó durante 2 años como editor de contenidos en el blog de Alura y hoy sigue escribiendo artículos técnicos.

Este articulo fue adecuado para Alura Latam por: Adriana Oliveira

Alex Felipe
Alex Felipe

Alex é instrutor e desenvolvedor e possui experiência em Java, Kotlin, Android. Atualmente cria conteúdo no canal https://www.youtube.com/@AlexFelipeDev.

Artículo Anterior
Merge y Quick Sort: conozca cuál es el mejor algoritmo
Siguiente Artículo
¿Qué es la biblioteca Swing?

Ver otros artículos sobre Programación

Navegación

  • Planes
  • Instructores
  • Blog
  • Política de privacidad
  • Términos de uso
  • Sobre nosotros
  • Preguntas frecuentes

¡CONTÁCTANOS!

  • ¡Quiero entrar en contacto!

Blog

  • Programación
  • Data Science
  • Front End
  • Innovación y Gestión
  • DevOps

AOVS Sistemas de Informática S.A CNPJ 05.555.382/0001-33

SÍGUENOS EN NUESTRAS REDES SOCIALES

YouTube Facebook Instagram Linkedin Whatsapp Spotify

NOVEDADES Y LANZAMIENTOS

Aliados

  • Programa de aceleração Scale-Up Endeavor
  • En Alura somos unas de las Scale-Ups seleccionadas por Endeavor, programa de aceleración de las empresas que más crecen en el país.
  • Growth Academy 2021 do Google For Startups
  • Fuimos unas de las 7 startups seleccionadas por Google For Startups en participar del programa Growth Academy en 2021
Alura

Powered by

Caelum

AOVS Sistemas de Informática S.A CNPJ 05.555.382/0001-33

SÍGUENOS EN NUESTRAS REDES SOCIALES

YouTube Facebook Instagram Linkedin Whatsapp Spotify

Cursos

Cursos de Programación
Lógica de Programación | Java
Cursos de Front End
HTML y CSS | JavaScript | React
Cursos de Data Science
Data Science | Machine Learning | Excel | Base de Datos | Data Visualization | Estadística
Cursos de DevOps
Docker | Linux
Cursos de Innovación y Gestión
Transformación Ágil | Marketing Analytics

Alura

  • Educação em Tecnologia

    • logo fiap FIAP
    • logo casa do codigo Casa do Código
    • logo pm3 PM3 - Cursos de Produto
  • Mais Alura

    • logo alura start START BY Alura
    • logo alura lingua Alura Língua
    • logo alura para empresas Alura Para Empresas
    • logo alura latam Alura LATAM
  • Comunidade

    • logo tech guide Tech Guide
    • logo 7 days of code 7 days of code
    • logo Hipsters ponto Jobs Hipsters ponto Jobs
  • Podcasts

    • logo Hipster Network Hipster Network
    • logo Hipsters ponto Tech Hipsters ponto Tech
    • logo Dev sem fronteiras Dev sem Fronteiras
    • logo Like a Boss Like a Boss
    • logo IA Sob Controle IA Sob Controle
    • logo Mesa de Produto Mesa de Produto
    • logo Decode Decode
    • logo FIAPCast FIAPCast