Java -D sistēmas rekvizīti izskaidroti: sintakse, prioritāte un piemēri
Publikācijas datums:
Atjaunināts:
Tehniskie raksti > Java -D sistēmas rekvizīti izskaidroti: sintakse, prioritāte un piemēri
2026. gada statuss un droša lietošana
Secinājums: ievietojiet -Dname=value pirms galvenās klases vai argumenta -jar, lai definētu JVM sistēmas rekvizītu. Java kods to nolasa ar System.getProperty("name"); tas nav tas pats, kas operētājsistēmas vides mainīgais.
Ko jūs uzzināsiet
- Kā Java palaidējs parsē
-Dopcijas un kur tiek saglabāta vērtība. - Kā pārbaudīt rekvizītus, neatklājot sensitīvus datus komandrindā vai procesu sarakstā.
- Kā oriģinālais Java 11 piemērs ir saistīts ar pašreizējiem atbalstītajiem JDK laidieniem.
Kam tas ir paredzēts: Java izstrādātājiem un operatoriem, kas diagnosticē videi specifisku lietojumprogrammu konfigurāciju.
2026. gada konteksts: mehānisms joprojām ir aktuāls, taču piekļuves datiem izmantojiet noslēpumu pārvaldnieku vai aizsargātu konfigurācijas avotu. Tālāk sniegtajā pamācībā ir ierakstīts oriģinālais Java 11 tests, un to nevajadzētu uzskatīt par ieteikumu ievietot noslēpumus argumentos -D.
Drošības piezīme. Sākotnējā rakstā esošās komandas un konfigurācijas piemēri nav atkārtoti izpildīti pašreizējā ražošanas vidē. Pirms to lietošanas pārbaudiet atbalstītās versijas, dublējumus, piekļuves vadīklas un atcelšanas darbības atsevišķā testa vidē.
Galvenie oficiālie avoti
Pārskats
Java palaišanas opcijās bieži sastopamas tādas vērtības kā -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager — gan palaižot lietojumprogrammu čaulā, gan IDE, piemēram, Eclipse.
Šajā rakstā parādīts, kā opcija -Dname=value kļūst par Java sistēmas rekvizītu.
Satura rādītājs
1. Ko dara opcija -D?
Java palaidējs izmanto sintaksi -Dname=value, lai jaunajā JVM definētu sistēmas rekvizītu. Opcijai jāatrodas pirms galvenās klases nosaukuma vai argumenta -jar.
Nākamajā piemērā tiek definēts rekvizīts test un nolasīts Java kodā.
1-1. Rekvizīta nolasīšana Java kodā
Pievienojiet Eclipse palaišanas konfigurācijai opciju -Dtest=testoption, kā parādīts attēlā.
Izveidojiet vienkāršu galveno klasi, kā parādīts tālāk.
Palaižot klasi, System.getProperty("test") atgriež un izvada vērtību testoption.
JVM palaišanas laikā definēts sistēmas rekvizīts ir pieejams ar System klasi visu šīs JVM darbības laiku.
2. Kopsavilkums
Izmantojiet -Dname=value neslepeniem JVM sistēmas rekvizītiem, kuriem dažādās palaišanas reizēs vai vidēs jāatšķiras. Nolasiet tos ar System.getProperty, bet piekļuves datiem un citiem noslēpumiem izmantojiet aizsargātu konfigurācijas avotu, nevis komandrindas argumentu.



