Чому архітектори Java не могли дозволити нам просто зробити:
java -jar -myProp="Hello World" myProgram.jar
Це може працювати сьогодні, але припустимо, що в наступних версіях Java -myProp
аргумент вводиться як опція JVM.
Як відрізнити свій варіант -myProp
від -myProp
JVM? У жодному разі.
Отже, існує очевидна причина для використання -D
для визначення властивостей системи.
Як інший приклад, замість того, щоб -myProp
припустити, що ваша програма покладається на -client
системну властивість.
Він не працюватиме:
java -jar -client="davidxxx" myProgram.jar
Ви мали б помилку JVM, таку як:
Невизнаний варіант: -client = davidxxx
як -client
стандартний варіант JVM, який не очікує значення.
Але якщо ви використовуєте -D-client
, тепер це нормально, оскільки тут -Dclient
визначено як системну властивість, яка відрізняється від -client
стандартної опції JVM:
java -jar -D-client="davidxxx" myProgram.jar
Або використовуючи обидва:
java -jar -client -D-client="davidxxx" myProgram.jar
Щоб піти далі, не всі аргументи JVM починаються з -D
. але більшість з них має префікс ( -D
, -X
,-XX
) , що дозволяє в деякому образі визначити простір імен.
У вас є різні категорії аргументів JVM:
1. Стандартні параметри ( -D
але не тільки).
Це найбільш часто використовувані варіанти, які підтримуються усіма реалізаціями JVM.
Ви можете використовувати -D
для визначення властивостей системи , але більшість з них не мають ніякого префікса: -verbose
, -showversion
і тому для ...
2. Нестандартні параметри (з префіксом -X
)
Ці параметри є загальними параметрами, характерними для віртуальної машини Java HotSpot.
Наприклад :-Xmssize
,-Xmxsize
3. Розширені параметри виконання (з префіксом -XX
)
Ці параметри контролюють поведінку середовища виконання Java HotSpot VM.
4. Розширені параметри компілятора JIT (з префіксом -XX
)
Ці параметри контролюють динамічну компіляцію "точно в час" (JIT), виконувану Java HotSpot VM.
5. Розширені параметри обслуговування (з префіксом -XX
)
Ці параметри надають можливість збирати системну інформацію та виконувати великі налагодження.
6. Розширені параметри збору сміття (з префіксом -XX
)
Ці параметри контролюють, як збір сміття (GC) виконується Java HotSpot VM.