Warum konnten die Architekten von Java uns nicht einfach Folgendes tun lassen:
java -jar -myProp="Hello World" myProgram.jar
Es könnte heute funktionieren, aber nehmen wir an, dass in den nächsten Java-Versionen ein -myProp
Argument als JVM-Option eingeführt wird.
Wie können Sie Ihre -myProp
von der -myProp
JVM-Option unterscheiden? Auf keinen Fall.
Es gibt also einen offensichtlichen Grund , Systemeigenschaften -D
zu definieren .
Anstatt -myProp
anzunehmen , dass sich Ihr Programm auf eine -client
Systemeigenschaft stützt .
Es wird nicht ausgeführt:
java -jar -client="davidxxx" myProgram.jar
Sie hätten einen JVM-Fehler wie:
Nicht erkannte Option: -client = davidxxx
wie -client
eine JVM Standardoption , die keinen Wert erwartet.
Wenn Sie jedoch verwenden -D-client
, ist dies jetzt in Ordnung, da hier -Dclient
eine Systemeigenschaft definiert ist, die sich von der -client
Standard-JVM-Option unterscheidet:
java -jar -D-client="davidxxx" myProgram.jar
Oder indem Sie beide verwenden:
java -jar -client -D-client="davidxxx" myProgram.jar
Um weiter zu gehen, beginnen nicht alle JVM-Argumente mit -D
. aber die meisten von ihnen haben einen Präfix ( -D
, -X
, -XX
) , die in einem someway ermöglicht Namensräume zu definieren.
Sie haben verschiedene Kategorien von JVM-Argumenten:
1. Standardoptionen ( -D
aber nicht nur).
Dies sind die am häufigsten verwendeten Optionen, die von allen Implementierungen der JVM unterstützt werden.
Sie verwenden , -D
um Systemeigenschaften festlegen , aber die meisten von ihnen haben keinen Präfix: -verbose
, -showversion
, und so für ...
2. Nicht standardmäßige Optionen (mit dem Präfix -X
)
Diese Optionen sind Allzweckoptionen, die für die Java HotSpot Virtual Machine spezifisch sind.
Zum Beispiel: -Xmssize
,-Xmxsize
3. Erweiterte Laufzeitoptionen (mit dem Präfix -XX
)
Diese Optionen steuern das Laufzeitverhalten der Java HotSpot-VM.
4. Erweiterte JIT-Compiler-Optionen (mit dem Präfix -XX
)
Diese Optionen steuern die dynamische Just-in-Time-Kompilierung (JIT), die von der Java HotSpot-VM durchgeführt wird.
5. Erweiterte Wartungsoptionen (mit dem Präfix -XX
)
Diese Optionen bieten die Möglichkeit, Systeminformationen zu sammeln und ein umfangreiches Debugging durchzuführen.
6. Erweiterte Garbage Collection-Optionen (mit dem Präfix -XX
)
Diese Optionen steuern, wie die Garbage Collection (GC) von der Java HotSpot-VM ausgeführt wird.