Artigos de Tecnologia e Negócios > Programação

Para que serve o String[] args em Java?

Alex Felipe
Alex Felipe

Acabei de terminar mais uma funcionalidade da minha aplicação e preciso testá-la. Porém a minha aplicação possui o ambiente de desenvolvimento, teste e produção:


public class Main {

public static void main(String[] args) {

String ambiente = ""; 
if(ambiente.equals("DEVELOPMENT")){ 
    System.out.println("executando codigo de desenvolvimento");
     } else if (ambiente.equals("TEST")){ 
         System.out.println("executando codigo de teste");
     } else if (ambiente.equals("PRODUCTION")){ 
         System.out.println("executando codigo de producao"); 
    }
  }

}

Agora vou usar a classe Scanner e fazer a leitura pelo teclado para testar o meu código:


Scanner sc = new Scanner(System.in); 
System.out.println("Informe o ambiente");
String ambiente = sc.nextLine();

Resultado:


Informe o ambiente DEVELOPMENT executando codigo de devesenvolvimento

Poxa vida...

Além de cansativo, existe a possibilidade de eu errar a opção e executar um ambiente por engano ou até mesmo não executar nenhum. Como eu posso fazer com que, ao executar o meu programa, ele já saiba que ambiente rodar? Pelo parâmetro args do método main!


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

Ué, aquela variável que não serve pra nada?

O parâmetro args é um array que recebe dados da command line (linha de comando), ou seja, no momento que executamos a nossa aplicação podemos enviar uma informação por meio dele.

Enviando o parâmetro args na execução

Vamos então fazer teste enviando o valor DEVELOPMENT durante a execução da classe Main:

cap-3

Ótimo! Agora não vou precisar ficar digitando o ambiente todas as vezes, mas... Ainda tenho que ficar escrevendo no command line...

Posso acabar errando o parâmetro em algum momento e fazer uma caca... Para resolver esse problema, basta criar arquivos .bat para cada um dos ambiente!

DEVELOPMENT.bat:

java Main DEVELOPMENT

PRODUCTION.bat:

java Main PRODUCTION

TEST.bat:

java Main TEST

Testando os ambientes:

cap-prod-bat

cap-dev-bat

cap-test-bat

Excelente! Agora eu posso testar a minha aplicação em vários ambientes sem nenhuma preocupação! E se eu precisar saber, por exemplo, saber qual versão do java está sendo executada em cada ambiente?

Podemos utilizar as Properties da classe System e pegar uma propriedade do ambiente por meio do método getProperty():


//código

if(ambiente.equals("DEVELOPMENT")){ 
    System.out.println("Versao do Java: " + System.getProperty("java.version"));System.out.println("executando codigo de desenvolvimento");
}

//código

Testando o ambiente de desenvolvimento:

cap-dev-version-bat

Excelente! Agora consigo verificar se o meu ambiente está sendo executado em uma versão esperada! Poderíamos coletar outras informações por meio do getProperty(), como por exemplo usuário (user.name) ou o sistema operacional (os.name).

E aí, já passou por alguma situação em que precisava testar ambientes diferentes? O que achou dessa alternativa utilizando o String[] args e as Properties da classe System?

Leia também:

Artigos de Tecnologia e Negócios > Programação

Cursos profissionais de Programação é na Alura, comece agora!

  • 1184 cursos

    Cursos de programação, UX, agilidade, data science, transformação digital, mobile, front-end, marketing e infra.

  • Certificado de participação

    Certificado de que assistiu o curso e finalizou as atividades

  • App para Android e iPhone/iPad

    Estude até mesmo offline através das nossas apps Android e iOS em smartphones e tablets

  • Projeto avaliado pelos instrutores

    Projeto práticos para entrega e avaliação dos professores da Alura com certificado de aprovação diferenciado

  • Acesso à Alura Start

    Cursos de introdução a tecnologia através de games, apps e ciência

  • Acesso à Alura Língua

    Reforço online de inglês e espanhol para aprimorar seu conhecimento

Premium

  • 1184 cursos

    Cursos de programação, UX, agilidade, data science, transformação digital, mobile, front-end, marketing e infra.

  • Certificado de participação

    Certificado de que assistiu o curso e finalizou as atividades

  • App para Android e iPhone/iPad

    Estude até mesmo offline através das nossas apps Android e iOS em smartphones e tablets

  • Projeto avaliado pelos instrutores

    Projeto práticos para entrega e avaliação dos professores da Alura com certificado de aprovação diferenciado

  • Acesso à Alura Start

    Cursos de introdução a tecnologia através de games, apps e ciência

  • Acesso à Alura Língua

    Reforço online de inglês e espanhol para aprimorar seu conhecimento

12X
R$75
à vista R$900
Matricule-se

Premium Plus

  • 1184 cursos

    Cursos de programação, UX, agilidade, data science, transformação digital, mobile, front-end, marketing e infra.

  • Certificado de participação

    Certificado de que assistiu o curso e finalizou as atividades

  • App para Android e iPhone/iPad

    Estude até mesmo offline através das nossas apps Android e iOS em smartphones e tablets

  • Projeto avaliado pelos instrutores

    Projeto práticos para entrega e avaliação dos professores da Alura com certificado de aprovação diferenciado

  • Acesso à Alura Start

    Cursos de introdução a tecnologia através de games, apps e ciência

  • Acesso à Alura Língua

    Reforço online de inglês e espanhol para aprimorar seu conhecimento

12X
R$100
à vista R$1.200
Matricule-se

Max

  • 1184 cursos

    Cursos de programação, UX, agilidade, data science, transformação digital, mobile, front-end, marketing e infra.

  • Certificado de participação

    Certificado de que assistiu o curso e finalizou as atividades

  • App para Android e iPhone/iPad

    Estude até mesmo offline através das nossas apps Android e iOS em smartphones e tablets

  • Projeto avaliado pelos instrutores

    Projeto práticos para entrega e avaliação dos professores da Alura com certificado de aprovação diferenciado

  • Acesso à Alura Start

    Cursos de introdução a tecnologia através de games, apps e ciência

  • Acesso à Alura Língua

    Reforço online de inglês e espanhol para aprimorar seu conhecimento

12X
R$120
à vista R$1.440
Matricule-se
Procurando planos para empresas?
Acesso por 1 ano
Estude 24h/dia onde e quando quiser
Novos cursos toda semana