VisualVM "nicht unterstützt für diese JVM" auf alle lokalen Anwendungen?
Ich habe bereits verbrachte eine lange Zeit zum laden und testen meiner Anwendung, jetzt muss ich Profil. Aber leider, die VisualVM sagt immer "nicht unterstützt für diese JVM" auf meinem lokalen Anwendungen?
Die Anwendungen gestartet wurden, die auf der gleichen JVM mit VisualVM.
InformationsquelleAutor der Frage Mon Dev | 2011-05-24
Du musst angemeldet sein, um einen Kommentar abzugeben.
Fand ich heraus, dass (zumindest unter Windows) kann man leicht schreiben, kleine batch-Dateien ausführen VisualVM in Kombination mit bestimmten JVMs, das ist wichtig für mich, denn ich habe installiert die 32bit JDK zusammen mit dem 64bit JDK (das brauche ich beide, so ist dies sinnvoll für mich).
Erstellt habe ich zwei batch-Dateien in den Ordner "S:\applications\visualvm\bin\":
run_32.bat:
run_64.bat:
Offensichtlich, alle Pfade können auf Ihrem system unterscheiden, aber die Allgemeine Idee sollte noch einwandfrei funktionieren (auf allen 64bit-Versionen von Windows). Der Vorteil ist, dass ich die 32bit batch-Datei, wenn ich Sie benutzen will VisualVM in Kombination mit Java-Anwendungen, die laufen auf der 32-bit-JVM, und so weiter für 64bit.
Den "start" - Befehl hat den einzigen Vorteil, dass die batch-Datei startet die Anwendung ohne zu warten, für es zu beenden, also die Eingabeaufforderung Fenster schließt sich sofort. Dies ist nicht ein feature von VisualVM, aber der Windows-batch-Datei-interpreter.
InformationsquelleAutor der Antwort Rolf Viehmann
VisualVM ausgeführt werden muss mit der gleichen JVM - mindestens Java 6 mit der gleichen 32-bit/64-bit Größe als das Programm aufgezeichnet werden. (Sie müssen auch die gleichen user, aber dann diese Meldung gilt nicht).
Ich würde triple-überprüfen Sie, dass es war genau der gleichen JVM in Ihrer situation.
InformationsquelleAutor der Antwort Thorbjørn Ravn Andersen
In meinem Fall, sogar mit der JVM-matching (beide 64-Bit), ist der einzige Weg, um die Dinge zu arbeiten senden war das argument
-Dcom.sun.management.jmxremote
der JVM überwacht werden. Das funktioniert auch, wenn Sie Probleme mit der Verbindung über Java Mission Control (JMC).Laut JMX-Dokumentationdas, was das argument ist:
Dieser sollte automatisch aktiviert, aber aus irgendeinem Grund war es nicht auf meinem Linux.
InformationsquelleAutor der Antwort Rafael
Unter Linux:
Stellen Sie sicher, dass Ihre /etc/hosts korrekt verweist auf die effektive ip-Adresse des "hostname"
Es scheint, dass die Diskrepanz hier völlig verwirrt den Armen jvisualvm und seine Programmierer.
InformationsquelleAutor der Antwort user3356656
Traf ich auch dieses Problem. Mein Fall ist, die auf linux, begann ich tomcat mit tomcat_user aber ich jvisualvm laufen mit root-Benutzer. Es funktioniert, nachdem ich starten Sie tomcat mit root-Benutzer.
InformationsquelleAutor der Antwort Jacky
Wie Sie sehen können, Sie mit VisualVM auf 32-bit-JVM
Brauchen Sie nicht zu deinstallieren 32bit JVM. Nur sagen, VisualVM zu verwenden-tour 64-bit-JVM.
Wenn Sie es ändern wollen, dauerhaft, können Sie Sie Bearbeiten
in visualvm_13\etc\visualvm.conf und geben Sie den Pfad der jvm hier
InformationsquelleAutor der Antwort Jayanth Suvarna
Ein Problem, das ich gerade gefunden, Dank dem Tipp von @user3356656, ist, dass, wenn Sie das Programm starten, während Ihre Maschine ist auf eine IP, und dann versuchen, sich zu verbinden, während es auf einer anderen IP, wird es scheitern.
InformationsquelleAutor der Antwort Paul Wagland
Ich hatte das problem mit der visualvm erkennen meiner lokalen tomcat-installation auf Windows 7. Könnte ich manuell eine Verbindung herstellen, aber dann Dinge wie Speicher-snapshots und visualgc plugin wurden nicht aktiviert. Ich bestätigte, dass ich mit derselben JVM-version, temp-Datei Berechtigungen, etc. Hat nicht funktioniert. Dann fand ich, dass der Start von visualvm zuerst, und dann tomcat, das problem gelöst.
InformationsquelleAutor der Antwort edw5423619
Kann ich reproduzieren, weiter Verhalten.
Ich habe eine java-Anwendung mit der rechten Maustaste klicken Sie auf Menü zu öffnen jvisualvm.
Ich bin mit dieser java-Anwendung als standalone-setup von einer bat-Datei.
Es bedeutet, dass ich ändern, %Pfad% und andere Umgebungsvariablen, wie JDK
entsprechend bilden mein Umfeld.
Die FLEDERMAUS, startet die Anwendung markiert die Ausführung als nicht-admin. Umwelt Punkte, um eine 64-bit-JDK verwendet wird.
Dann habe ich andere java-Anwendung als admin aus. VM lebt von der gleichen 64-bit-JDK-source.
Dann starte ich jvisualvm aus erste app mit der rechten klicken Sie auf ie.als nicht-admin.
Ich kann sehen, dass die app in jvisualvm "Anwendungen-Liste", aber clickin 'System properties' gibt Fehler. Die Meldung "Nicht unterstützt für diese JVM".
JVM-Argumente ausgesetzt sind.
Lösung ist wie in einigen anderen Kommentaren:
Ab meinem rechten Maustaste auf jvisualvm-starter als admin kann ich sehen, auch die "system properties" .
Sicherlich, wenn JDKs auf 32-bit und der andere 64-bit würde es nicht funktionieren. dort gewesen zu sein.
Dachte ich, dieser Begriff muss hier Hinzugefügt werden, da dieser kaum die Hälfte der Arbeit Ruck Los.
InformationsquelleAutor der Antwort Kursk
Mein problem war, JVM-Optimierungen -
-XX:+PerfDisableSharedMem
Flagge brechen VisualGC. Dies ist offensichtlich, wenn jps wird nicht zeigen Sie Ihre app in der Liste.InformationsquelleAutor der Antwort Tatu Lahtela
Habe ich geändert name zu meiner Windows-Benutzer, und legen Sie es in Kleinbuchstaben geschrieben, meinen PC neugestartet und es funktioniert alles jetzt.
InformationsquelleAutor der Antwort PierluigiVernetto
Bekam ich auch das gleiche problem für die lokalen tomcat, ich Suche nach Lösungen für stackoverflow. nach einigen schweren Debuggen habe ich herausgefunden, dass VisualGC keine Berechtigung haben, um Informationen von GC tool.jar Datei.
durch links
http://docs.oracle.com/javase/7/docs/technotes/tools/share/jstatd.html#SECURITY
https://stackoverflow.com/a/42107355/3876619
Ich folgende Schritte um das Problem zu lösen
1) Erstellen Sie eine Berechtigung, die Datei
Hinzufügen
speichern Sie es
2) Jetzt hinzufügen /tmp/tools.Politik JVM Startparameter
3) Führen jvisualVm mit sudo
InformationsquelleAutor der Antwort Ravipati Praveen
Für mich, der Grund ist, dass ich die "jstatd" mit einem anderen Benutzer mit der JVM-Prozess. Ich habe einen speziellen user in die linux starten Sie die JVM-thread(es ist ein tomcat), aber ich starte den jstatd-Prozess mit root. Wenn Sie root ausführen, jps, Sie können sehen, alle Informationen der JVM-threads der anderen user. Das ist das Problem.
Ich tötete die "jstatd" - Prozess gestartet, von root, su, der Besitzer des JVM-Prozess, und starten Sie die "jstatd" Prozess-und wokrs alles gut jetzt.
InformationsquelleAutor der Antwort Raul