Wie bekomme ich die system properties für einen bestimmten JVM-Instanz programmgesteuert?
Wünsche ich zu erhalten, die system-Eigenschaften legen Sie für eine Dritte Partei java-Prozess/JVM. Ich muss dies programmatisch tun. Zum Beispiel, dass das "java.Klasse.path" - Eigenschaft. Wie kann ich dies tun?
Ich weiß, dass wir bekommen können die Eigenschaften für ein java-Programm, das wir schreiben mit System.getProperty(). Aber ich brauche, um die Systemeigenschaften für ein third-party-JVM. Wie kann ich die gleiche erhalten?
- Was meinst du mit third-party-JVM? Beziehen Sie sich auf eine JVM auf, die Sie nicht ausführen können Sie Ihren code?
- Fragen Sie einfach das Programm läuft im Dritten JVM für die info
- Ja, ich meine..ich kann nicht laufen meine java-code auf, der JVM. Alternativ ist es möglich, eine Verbindung zu einer bestimmten JVM und ausführen der java-code auf sich?
- Sumit, können Sie erläutern, was Sie bedeuten, indem Sie es Fragen, das Programm läuft im Dritten JVM für Infos???
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn von third-party-JVM Sie nur, dass eine andere JVM-dann sollten Sie versuchen jinfo. Dies funktioniert nicht mit allen JVM-Implementierungen, aber die meisten haben Sie vermutlich oder etwas ähnliches. jinfo nimmt eine Prozess-id als argument (oder remote-system, siehe Mann jinfo). Die Prozess-id verwenden jps oder jps -v.
Ab Java 7, können Sie den Befehl verwenden
jcmd
, der Teil des JDK, so dass es funktioniert auf die gleiche Weise auf allen Betriebssystemen.Es kann mit beiden eine pid oder der main-Klasse.
Mit der pid der Ziel-JVM
Die syntax ist dann
jcmd ${pid} VM.system_properties
Beispiel:
Mit den Namen der Klasse
Die syntax ist dann
jcmd ${class-name} VM.system_properties
Beispiel:
Mehr details über wie zu verwenden
jcmd
.Siehe auch die
jcmd
- DienstprogrammZu programetically Zugriff auf die remote JVM-Statistiken (JVM system-Parameter, Thread statististics, Memomy Informationen, GC, Informationen und anderen Informationen), JMX verwendet werden kann. Für die remote JVM ermöglichen, die müssen JMX-Verbindung (Überprüfen Sie dies auf aktivieren so aktivieren Sie JMX-in remote JVM). Grundsätzlich müssen Sie die folgenden D-Parameter gesetzt werden, die in der entfernten JVM mit entsprechenden Werten:
Einmal die oben beschriebene Einstellung abgeschlossen ist, verbinden Sie die JMX-port und verschiedene Mbean-Daten vom remote-server aus der Anwendung: die Folgenden ist einige Beispiel-code:
Mit diesem
mbeanServerConnection
können Sie den Zugriff auf die verschiedenen managed beans und erhalten die erforderlichen Informationen von den MX-Bohnen. Für die system-Eigenschaften zu erhalten, müssen Sie dieRuntimeMXBean
bean und rufengetSystemProperties()
um alle system Parameter.