Réglage des paramètres de la JVM au moment de l'exécution
Est-il possible de changer/modifier/ajouter des paramètres de la VM après la JVM est déjà chargé (course)? Si oui, comment puis-je le faire?
Vous devez vous connecter pour publier un commentaire.
Des propriétés que vous définissez via le
-D
drapeau sur la ligne de commande, vous souhaitez Système.setProperty. Par exemple:Mise à jour:
Vous ne pouvez pas activer le débogage dynamiquement, mais vous pouvez activer le débogage au démarrage mais attacher un débogueur plus tard. Avec la suite, vous pouvez l'écouter sur le port 12345 et le début de votre programme en cours d'exécution tout de suite (via
suspend=n
). Ensuite, vous pouvez attacher un débogueur si/quand vous en avez besoin, détacher le débogueur, fixez à nouveau plus tard, etc.Bien sûr, ce qui affecte les performances, même lorsque le débogueur n'est pas attaché, il ne fonctionne bien que dans dev/test de code, pas de production. Pour cela, vous voulez journalisation, par exemple log4j.
Une réponse courte est que vous ne pouvez pas changer les paramètres de la VM lors de l'exécution. La classe d'Exécution ne exposer certaines options telles mémoire max. Les principaux paramètres tels que max de mémoire ne doit être définie par un administrateur de type pour la gestion des ressources lorsque plusieurs machines virtuelles co existent sur une machine. Permettant une JVM pour obtenir gourmands et de demander beaucoup, beaucoup plus que ce qu'il a été alloué de tuer cette contrainte.
com.sun.management.HotSpotDiagnosticMXBean#setVMOption(String, String)