web-dev-qa-db-fra.com

Lire Java Paramètres de démarrage de la JVM (par exemple -Xmx)

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

Si vous vous demandez pourquoi je veux faire cela, j'ai un certain nombre de serveurs Web JVM qui peuvent ou non être configurés correctement et je veux l'ajouter à la vérification du code de démarrage. Il est beaucoup plus facile pour moi d'archiver un morceau de code Java qui est déployé partout que de rechercher et de vérifier manuellement tous les fichiers de démarrage jvm. En ce moment, les fichiers de configuration jvm pour le meilleur ou pour le pire sont ne fait pas partie de notre processus de construction ou n'est pas contrôlé par le contrôle de code source.

46
Bob Albright

Essayer:

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 montrer tous les paramètres JVM.

Remarque: nous n'avons pas non plus de paramètre JVM dans VCS, mais dans une base de données, lue 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 résumé de divers outils JVM à utiliser dans cet article (à partir des "Cogitations et spéculations de développement logiciel de Dustin" ), y compris Lanceur d'application Java liens vers:

Cette technique tire parti des Platform MXBeans disponibles depuis J2SE 5 (la prise en charge des MXBeans personnalisés a été ajoutée dans Java SE 6 ).

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

Ces deux ressources répertorient et décrivent certains/tous les arguments double X non recommandés pour le développeur occasionnel (-XX) Qui sont disponibles.

53
VonC

Avec Java 7 ou version ultérieure, c'est aussi simple que

Java -XshowSettings:all

10
Mike Duigou