Možnost -D v Javi: nastavljanje in branje sistemskih lastnosti


Datum objave:

Posodobljeno:


Tehnični članki > Možnost -D v Javi: nastavljanje in branje sistemskih lastnosti

Stanje in varna uporaba v letu 2026

Bistvo: Možnost -Dname=value pred glavnim razredom ali argumentom -jar nastavi sistemsko lastnost JVM. Koda Java jo prebere z System.getProperty("name"); sistemska lastnost ni isto kot okoljska spremenljivka operacijskega sistema.

Kaj boste izvedeli

  • Kako zaganjalnik Java obdela možnosti -D in kam shrani njihove vrednosti.
  • Kako pregledati lastnosti, ne da bi zaupne podatke razkrili v ukazni vrstici ali na seznamu procesov.
  • Kako prvotni primer za Javo 11 uporabiti z zdaj podprtimi izdajami JDK.

Komu je članek namenjen? Razvijalcem in skrbnikom sistemov, ki odpravljajo težave z nastavitvami aplikacij v različnih okoljih.

Opomba za leto 2026: Mehanizem je še vedno aktualen, vendar za poverilnice uporabite upravljalnik skrivnosti ali zaščiten konfiguracijski vir. Spodnji prikaz dokumentira prvotni preizkus z Javo 11 in ni priporočilo za posredovanje skrivnosti z argumenti -D.

Varnostna opomba: Ukazi in konfiguracijski primeri iz prvotnega članka niso bili znova preizkušeni v sodobnem produkcijskem okolju. Pred uporabo v ločenem preizkusnem okolju preverite podprte različice, izdelajte varnostne kopije ter določite nadzor dostopa in postopek povrnitve.

Uradni viri

Pregled

Ob zagonu Jave lahko na primer navedete "-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager". Enako možnost je mogoče v Eclipse vnesti med argumente VM, kot prikazuje spodnja slika.

Nastavitev možnosti -D v konfiguraciji zagona Eclipse

V nadaljevanju je pojasnjeno, kaj se zgodi, ko ukazu dodate možnost "-DXXXXXX".

Kazalo vsebine

  1. Kaj je možnost D (-D)?
  2. Povzetek

1. Kaj je možnost D (-D)?

Možnost D (-D) ob zagonu Jave nastavi sistemsko lastnost.

Naslednji primer pokaže, kako nastavljeno vrednost prebere program.

1-1. Kaj se zgodi ob zagonu z možnostjo D (-D)

V Eclipse nastavite argument VM "-Dtest=testoption", kot prikazuje spodnja slika.

Argument VM -Dtest=testoption v konfiguraciji Eclipse

Ustvarite preprost glavni razred, kot je prikazano spodaj.

Razred Java, ki bere sistemsko lastnost test

Izpis glavnega razreda pokaže, da je za lastnost "test" vrnjena vrednost "testoption".

Rezultat testoption v konzoli Eclipse

Sistemsko lastnost, nastavljeno ob zagonu Jave, je torej mogoče prebrati prek razreda System.

2. Povzetek

Z možnostjo D (-D) ob zagonu nastavite sistemsko lastnost, program pa jo prebere prek razreda System. To je uporabno predvsem za nastavitve, ki se razlikujejo med okolji.

Za zaupne vrednosti namesto argumentov ukazne vrstice uporabite namensko upravljanje skrivnosti.