Vad är D-alternativet (-D) som anges vid start av Java?


Datum för offentliggörande:

Uppdaterad:


INFORMATION > Vad är D-alternativet (-D) som anges vid start av Java?

2026 status och säker användning

Slutsats: Placera -Dname=value före huvudklassens eller -jar-argumentet för att definiera en JVM-systemegenskap. Java-koden läser den med System.getProperty("name"); det är inte samma sak som en miljövariabel i operativsystemet.

Vad du kommer att lära dig

  • Hur Java-startprogrammet analyserar -D-alternativ och var värdet lagras.
  • Hur man inspekterar egenskaper utan att läcka hemligheter till kommandorader eller processlistor.
  • Hur det ursprungliga Java 11-exemplet mappas till aktuella JDK-versioner som stöds.

Vem detta är till för: Java-utvecklare och -operatörer som diagnostiserar miljöspecifik applikationskonfiguration.

2026 position: Mekanismen förblir aktuell, men använd en hemlighetshanterare eller skyddad konfigurationskälla för autentiseringsuppgifter. Genomgången nedan registrerar det ursprungliga Java 11-testet och bör inte läsas som en rekommendation för att lägga hemligheter i -D-argument.

Säkerhetsanmärkning: Kommandona och konfigurationsexemplen i den ursprungliga artikeln har inte körts om i en aktuell produktionsmiljö. Verifiera versioner som stöds, säkerhetskopior, åtkomstkontroller och återställningssteg i en separat testmiljö innan du använder dem.

Officiella primära källor

Översikt.

ClassLoaderLogManager" när Java startas, eller "-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager" i "Execution environment ⇒ VM arguments" i Eclipse, enligt följande. logging.manager=org.apache.juli.ClassLoaderLogManager" på följande sätt i Eclipse.

Eclipse-skärm

Jag vill förklara vad som händer när du lägger till denna "-DXXXXXXXX".

Innehållsförteckning

  1. Vad är alternativet D (-D)?
  2. sammanfattning

1. Vad är alternativet D (-D)?

Alternativet D (-D) är ett Java-systemegenskapsvärde.

Jag skulle vilja köra den för att se vad som händer när jag ställer in värden för systemegenskaperna.

1-1. Vad händer om du kör den med alternativet D (-D)?

Jag vill köra Eclipse med alternativet D (-D). Det specifika alternativet är "-Dtest=testoption". Ställ in det som visas i diagrammet nedan.

Eclipse-skärm

Skapa en enkel huvudklass som visas nedan.

Eclipse-skärm

När du kör denna huvudklass visar det sig att värdet "testoption" kan erhållas med "test" som argument på följande sätt.

Eclipse-skärm

Detta innebär att om ett värde för en systemegenskap är inställt när Java startar kan värdet hämtas från klassen System.

3. sammanfattning

Alternativet D (-D) när du startar Java gör det möjligt att hämta värden från klassen System. Det används t.ex. när du dynamiskt vill ställa in olika värden för olika miljöer.

Tack för att du tittade på till slutet.