2012-12-06 11 views
14

Próbowałem uruchomić JConsole do analizy pamięci używanej przez uruchomiony proces, ale JConsole nie pokazuje mi procesów, chociaż jestem absolutnie pewien, że jest uruchomiony (oprócz tego powinien pokazać JConsole również na liście procesów, ale tak nie jest).JConsole nie może znaleźć procesu

Czy ktoś ma pomysł, dlaczego nie wyświetla żadnych procesów?

Pozdrowienia

Odpowiedz

10

Mam ten sam problem. Ale jeśli jednoznacznie określę PID, tak jak w jconsole 1234, jconsole może analizować proces.

+1

Czy możesz podać więcej szczegółów na temat tego, jak to zrobić? –

15

w wierszu okna, uruchom echo% TMP%, poda domyślny katalog temp. Przejdź do tego katalogu i znajdź katalog o nazwie hsperfdata_, gdzie jest twój login. To jest katalog do przechowywania twojego identyfikatora procesu. Każdy nowo utworzony proces, taki jak aplikacja Java, będzie miał nowy plik nazwany przez id procesu. Jconsole zbierze identyfikatory procesów z tego katalogu. Jeśli nie możesz utworzyć pliku w tym katalogu, oznacza to, że potrzebujesz uprawnienia do zmiany, aby zezwolić na zapis. Kiedy to zrobisz, uruchom nową aplikację java, aby sprawdzić, czy nowy plik id procesu znajduje się w katalogu. Po potwierdzeniu, uruchom jconsole

+1

Jeśli proces java zostanie uruchomiony z cygwin, będzie on miał inny folder TEMP niż oczekiwano - jconsole, rozpoczęte od explorera, nie odnajdzie wtedy procesu. – Kai

+0

Dzięki James! Naprawiono uprawnienia dla mnie! :) – baraka

1

Dzieje się tak, gdy wartość% TMP% jest różna dla monitorowanej maszyny JVM i narzędzia monitorowania (JConsole/JMC/Java Mission Control, może nawet VisualVM). Może to być standardowy scenariusz dla Cygwin (przynajmniej w moim przypadku: Cygwin + Babun). Najprostszym rozwiązaniem jest ustawienie wartości zmiennej środowiskowej TMP na domyślną wartość używaną przez system Windows, przynajmniej w zakresie uruchamiania powłoki JVM.

2

W moim przypadku usunięcie katalogu hsperfdata_USERNAME (w katalogu %TMP%) i zamknięcie wszystkich maszyn JVM pomogło.

0

Musisz uruchomić jconsole z tym samym użytkownikiem, z którym rozpoczyna się proces, od którego chcesz rozpocząć analizę.

+0

Nawet ja działam od tego samego użytkownika, ale nie jestem w stanie uruchomić jconsole. –

0

Jeśli używasz JConsole na oknach - po prostu:

  1. Znajdź jconsole.exe
  2. kliknij go prawym
  3. Wybierz run as administrator.