Java-alternativet -D: systemegenskaper, syntax och exempel
Publicerad:
Uppdaterad:
Tekniska artiklar > Java-alternativet -D: systemegenskaper, syntax och exempel
Status 2026 och säker användning
Slutsats: Ange -Dname=value före huvudklassen eller -jar-argumentet för att definiera en systemegenskap i JVM. Java-koden läser värdet med System.getProperty("name"). En systemegenskap är inte samma sak som en miljövariabel i operativsystemet.
Det här går artikeln igenom
- Hur Java-startprogrammet analyserar
-D-alternativ och var värdet lagras. - Hur egenskaper kan granskas utan att hemligheter exponeras på kommandoraden eller i processlistor.
- Hur det ursprungliga exemplet för Java 11 förhåller sig till aktuella JDK-versioner med support.
Målgrupp: Java-utvecklare och drifttekniker som felsöker miljöspecifik programkonfiguration.
Läge 2026: Mekanismen är fortfarande aktuell, men autentiseringsuppgifter bör lagras i en hemlighetshanterare eller en annan skyddad konfigurationskälla. Genomgången dokumenterar det ursprungliga testet med Java 11 och är inte en rekommendation att lägga hemligheter i -D-argument.
Säkerhetsinformation: Kommandona och konfigurationsexemplen i originalartikeln har inte testats på nytt i en aktuell produktionsmiljö. Kontrollera versioner med support, säkerhetskopior, åtkomstkontroller och återställningssteg i en separat testmiljö innan de används.
Viktiga officiella källor
Översikt
När Java startas anges ibland "-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager" på kommandoraden eller under "Execution environment ⇒ VM arguments" i Eclipse.
Här förklaras vad som händer när ett sådant "-DXXXXXXXX"-alternativ läggs till.
Innehållsförteckning
1. Vad är alternativet -D?
Alternativet -D definierar en systemegenskap när Java startas.
Följande exempel visar vad som händer när en systemegenskap får ett värde.
1-1. Vad händer när Java körs med alternativet -D?
I Eclipse används alternativet "-Dtest=testoption". Ange det som i bilden nedan.
Skapa en enkel huvudklass som visas nedan.
När huvudklassen körs hämtas värdet "testoption" genom att "test" skickas till System.getProperty, enligt resultatet nedan.
När en systemegenskap anges vid Java-start kan programmet alltså hämta värdet via klassen System.
2. Sammanfattning
Alternativet -D anger en systemegenskap vid Java-start, och värdet kan sedan hämtas via klassen System. Det är användbart när en konfiguration ska variera mellan olika miljöer.
Använd -D för vanlig miljöspecifik konfiguration, men inte för hemligheter som kan exponeras i processlistor eller loggar.



