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.
Luego haremos la prueba enviando el valor DEVELOPMENT durante la ejecución de la clase Main
:
¡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:
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:
¡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
?
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
Cursos de Programación, Front End, Data Science, Innovación y Gestión.
Luri es nuestra inteligencia artificial que resuelve dudas, da ejemplos prácticos y ayuda a profundizar aún más durante las clases. Puedes conversar con Luri hasta 100 mensajes por semana
Paga en moneda local en los siguientes países
Cursos de Programación, Front End, Data Science, Innovación y Gestión.
Luri es nuestra inteligencia artificial que resuelve dudas, da ejemplos prácticos y ayuda a profundizar aún más durante las clases. Puedes conversar con Luri hasta 100 mensajes por semana
Paga en moneda local en los siguientes países
Cursos de Programación, Front End, Data Science, Innovación y Gestión.
Luri es nuestra inteligencia artificial que resuelve dudas, da ejemplos prácticos y ayuda a profundizar aún más durante las clases. Puedes conversar con Luri hasta 100 mensajes por semana
Puedes realizar el pago de tus planes en moneda local en los siguientes países:
País | |||||||
---|---|---|---|---|---|---|---|
Plan Semestral |
487.37
BOB |
69289.36
CLP |
307472.10
COP |
65.90
USD |
264.35
PEN |
1431.74
MXN |
2978.57
UYU |
Plan Anual |
738.82
BOB |
105038.04
CLP |
466107.17
COP |
99.90
USD |
400.74
PEN |
2170.42
MXN |
4515.32
UYU |
Plan Anual + Boost |
Acceso a todos
los cursos
Estudia las 24 horas,
dónde y cuándo quieras
Nuevos cursos
cada semana