Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Como acessar variáveis de propriedade? -D

Estou lendo o livro "Java SE 8 - Programmer I" , e no capítulo 3, seção 3.3, no tópico "Propriedades na linha de comando", diz o seguinte: Propriedades são identificadas pelo -D; Exemplo: $java -Dkey1=abc -Dkey2=def Foo xpto bar key1=abc e key2=def são parâmetros/propriedades e xpto e bar são argumentos recebidos pelo método main; E o Foo ?? É o que?? O livro não diz. Eu não consegui entender perfeitamente este -D sem exemplo concreto. Como posso realizar um teste para comprovar essa veracidade?

1 resposta
solução!

Olá Braulio,

xpto e bar são argumentos que serão passados no método main, já key1 e key2 são propriedades que podemos ser acessadas usando a classe System, Foo é o nome da classe que você deseja executar.

Para você testar isso, basta utilizar a classe abaixo:


public class Foo {
    public static void main(String[] args) {
        System.out.println("Abaixos estão os argumentos");
        for(String arg : args){
            System.out.println(arg);
        }

        System.out.println("Abaixo estão as propriedades");
        System.out.println(System.getProperty("key1"));
        System.out.println(System.getProperty("key2"));
    }
}

1 - compile a classe com o seguinte comando:

javac Foo.java

2- execute a classe com o comando que você indicou:

java -Dkey1=abc -Dkey2=def Foo xpto bar

Dessa forma você verá como o java consegue ler esses valores e o que é cada um deles.