2017-10-17 4 views
0

Je commence mon programme java (Test.java) comme ceci:Comment changer la propriété du système en utilisant l'option de ligne de commande

java -DMyParam=2 Test 

je peux modifier dans le code en utilisant System.setProperty(), mais est-il une ligne de commande outil pour changer la valeur de la propriété MyParam?

J'ai essayé d'utiliser VM.set_flag mais en obtenant une erreur en-dessous, probablement parce que set_flag peut définir des indicateurs pas des propriétés système.

[email protected]:~/javacode$ jcmd 11441 VM.set_flag MyParam 1 
11441: 
flag MyParam does not exist 

Répondre

0

Cela ne semble pas possible.

Vous pouvez peut-être modifier certains indicateurs JVM gérables à l'aide de jinfo (https://docs.oracle.com/javase/8/docs/technotes/tools/unix/jinfo.html), mais cette commande est également expérimentale et n'est peut-être plus prise en charge dans les prochaines versions selon Oracle.

+1

Une meilleure façon de régler l'indicateur IMO de vm serait jcmd VM.set_flag, par ex. "jcmd 11441 VM.set_flag MinHeapFreeRatio 45" – Vipin

+0

Yah! jinfo semble être obsolète! –

0

Non, je ne pense pas que ce soit possible. Si c'est ce que vous voulez faire, vous devrez probablement exposer cette fonctionnalité vous-même. Peut-être créer un bean JMX et l'appeler avec jmxterm?