Java >> Programma Java >  >> Java

Imposta più proprietà di sistema riga di comando Java

La risposta è NO. Potresti aver visto un esempio in cui qualcuno avrebbe impostato qualcosa del tipo:

-DArguments=a=1,b=2,c=3,d=4,e=cow

Quindi l'applicazione analizzerebbe il valore di Arguments stringa di proprietà per ottenere valori individuali.Nel tuo main puoi ottenere i valori chiave come (supponendo che il formato di input sia garantito):

String line = System.getProperty("Arguments");
if(line != null) {
  String str[] = line.split(",");
    for(int i=1;i<str.length;i++){
        String arr[] = str[i].split("=");
        System.out.println("Key = " + arr[0]);
        System.out.println("Value = " +  arr[1]);
    }
}

Inoltre, il -D dovrebbe essere prima della classe principale o del jar file nella riga di comando java. Esempio:java -DArguments=a=1,b=2,c=3,d=4,e=cow MainClass


Non c'è niente nella documentazione che menzioni qualcosa del genere.

Ecco una citazione:

-Dproperty=valueImposta un valore per la proprietà di sistema. Se value è una stringa che contiene spazi, è necessario racchiudere la stringa tra virgolette doppie:

java -Dfoo="una stringa" SomeClass


Invece di passare le proprietà come argomento, puoi usare un .properties per archiviarle.


Etichetta Java