Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

DÚVIDAS SOBRE O COMANDO "-D"

Boa tarde,

Gostaria de entender para onde está sendo enviando essa "chave" e que método está recebendo esse valor ?

[TRECHO DA ATIVIDADE] A prova ainda cobra conhecimentos sobre como executar um programa java passando parâmetros ou propriedades para a JVM e essas propriedades são identificadas pelo -D antes delas. Este -D não faz parte da chave.

java -Dchave1=abc -Dchave2=def Foo xpto bar

chave1=abc e chave2=def são parâmetros/propriedades e xpto e bar são argumentos recebidos pelo método main.

4 respostas

Esses parâmetros (chave1[abc] e chave2[def]) estão sendo passados diretamente para a máquina virtual do Java, a JVM. Ela vai registrar esse mapa de opções para utilização na aplicação e pode também interpretá-los, caso estejam no escopo da JVM.

Em geral isso é mais utilizado pra definir variáveis de ambiente para uso na aplicação, por exemplo -Denvironment=homolog pra definir que o sistema está subindo em homologação ao invés de produção, por exemplo.

Então ao criar essas variáveis de ambiente "chave 1 e chave 2", no projeto, eu poderia pegar esses valores com a classe "environment" ? Como por exemplo feito no HEROKU para pegar variáveis do DATA BASE.

solução!

Exatamente! Talvez precise de alguma configuração extra, agora não tenho certeza, mas seria exatamente isso e o exemplo foi perfeito!

É um pouquinho diferente pois o Heroku exporta essas configurações como variáveis de ambiente, mas o resultado final é o mesmo.

Em um dos nossos projetos utilizamos o Play! e precisamos passar a opção -Dconfig.resource=production.conf pra que o sistema carregue as configurações deste arquivo específico. É uma especificação do framework, mas é um bom exemplo de utilização.

Obrigado pela a ajuda.