2009-11-18 12 views

Répondre

34

Pour les propriétés que vous définissez via l'indicateur -D sur la ligne de commande, vous voulez System.setProperty. Par exemple:

System.setProperty("propname", "hello world"); 

// ... later ... 
String value = System.getProperty("propname"); 

Mise à jour:

Vous ne pouvez pas activer le débogage dynamique, mais vous pouvez activer le débogage au démarrage, mais attacher un débogueur plus tard. Avec ce qui suit, vous pouvez écouter sur le port 12345 et démarrer votre programme en cours d'exécution (via suspend=n). Ensuite, vous pouvez joindre un débogueur si/quand vous avez besoin, détacher le débogueur, joindre plus tard, etc.

-Xdebug -Xnoagent -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=12345 

Bien sûr, cela nuit à la performance, même lorsque le débogueur est pas attaché, il ne fonctionne bien en code de dev/test, pas de production. Pour cela, vous voulez vous connecter, par ex. log4j.

+0

Qu'en est-il des options -X non standard? en particulier -Xdebug et d'autres drapeaux de débogage? – Guy

+0

J'ai ajouté une mise à jour avec des informations de débogage. –

+0

Merci, Harold! – Guy

3

Une réponse courte est que vous ne pouvez pas modifier les paramètres de machine virtuelle au moment de l'exécution. La classe Runtime expose certaines options telles que la mémoire max. Les paramètres principaux tels que max memory ne doivent être définis que par un type d'administration permettant la gestion des ressources lorsque plusieurs JVM coexistent sur une machine. Permettre à une JVM de devenir gourmande et de demander beaucoup plus que ce qui était alloué tuerait cette contrainte.

+0

La classe java.lang.Runtime peut vous indiquer le paramètre de mémoire maximum, mais ne permet pas de le modifier. – tgdavies

+0

@tdavies Je sais et j'ai donné la raison pour laquelle cette valeur est immuable. –

+7

-1 Il est possible de modifier les paramètres de la machine virtuelle à l'exécution! Jetez un oeil à 'com.sun.management.HotSpotDiagnosticMXBean # setVMOption (String, String)' – Chriss