2009-10-05 21 views
45

J'essaie de déterminer s'il existe un moyen de déterminer les propriétés de démarrage de la JVM à partir d'un processus Java en cours d'exécution. Plus précisément, j'essaie de savoir où sont stockés les paramètres tels que -Xmx (taille maximale du tas) et -XX: MaxPermSize. Je lance le 1.6 jvm de Sun.Lire les paramètres de démarrage de la JVM Java (par exemple -Xmx)

Si vous vous demandez pourquoi je veux faire cela, j'ai un certain nombre de serveurs Web JVM qui peuvent être ou ne pas être configurés correctement et je veux l'ajouter à la vérification du code de démarrage. Il est beaucoup plus facile pour moi de vérifier dans un morceau de code java qui est déployé partout que de trouver et de vérifier manuellement tous les fichiers de démarrage jvm. À l'heure actuelle, les fichiers de configuration jvm pour le meilleur ou pour le pire ne font pas partie de notre processus de construction ou ne sont pas vérifiés dans le contrôle de la source.

Répondre

52

Essayez:

import java.lang.management.ManagementFactory; 
import java.lang.management.RuntimeMXBean; 

import java.util.List; 

public void runtimeParameters() { 
    RuntimeMXBean bean = ManagementFactory.getRuntimeMXBean(); 
    List<String> aList = bean.getInputArguments(); 

    for (int i = 0; i < aList.size(); i++) { 
    System.out.println(aList.get(i)); 
    } 
} 

Cela devrait afficher tous les paramètres de la JVM.

Note: nous n'avons pas non plus de paramètre JVM dans VCS, mais dans une base de données, lu par nos propres lanceurs dans les productions. De cette façon, nous pouvons modifier ces valeurs à distance, sans avoir à redéployer les paramètres du fichier de paramètres JVM.


Vous trouverez un bon Sumary de divers JVM tools to use in this article (du "Dustin's Software Development Cogitations and Speculations"), y compris Java Application Launcher liens vers:

Cette technique profite de la plate-forme MXBeans disponibles depuis J2SE 5 (soutien MXBeans personnalisé a été ajouté à Java SE 6).

Deux sources d'information utiles sur les paramètres JVM disponibles lors de l'utilisation JVM de Sun sont:

Ces deux liste des ressources et de décrire certains/tous les non recommandés-pour-la-développeur occasionnel doubles X arguments (-XX) qui sont disponibles.

+0

fonctionne comme un charme! Je ne connais clairement pas java.lang.management aussi bien que je devrais. –

+0

et si c'est Java 1.4? –

9

Avec Java 7 ou plus tard, il est aussi facile que

java -XshowSettings:all