JConsole не может найти процесс

Я попытался запустить JConsole для анализа памяти, используемой запущенным процессом, но JConsole не показывает мне процессы, хотя я абсолютно уверен, что он работает (в дополнение к этому он должен показать JConsole в списке процессов как но это не так).

Кто-нибудь есть идея, почему он не показывает никаких процессов?

Приветствия

Ответы

Ответ 1

в приглашении окна запустите echo% TMP%, он предоставит вам настройку по умолчанию temp. Перейдите в эту директорию и найдите каталог с именем hsperfdata_, где находится ваш логин. Это каталог для хранения идентификатора процесса. Любой новый процесс, который вы создали, например java-приложение, будет иметь новый файл с именем process id. Jconsole выберет идентификаторы процессов из этого каталога. Если вы не можете создать файл в этом каталоге, это значит, что вам нужно разрешение на изменение, чтобы разрешить запись. После этого запустите новое Java-приложение, чтобы узнать, находится ли в каталоге файл нового файла процесса. После подтверждения запустите jconsole

Ответ 2

У меня та же проблема. Но если я явно укажу PID, как в jconsole 1234, jconsole сможет проанализировать этот процесс.

Ответ 3

В моем случае удаление каталога hsperfdata_USERNAME (в каталоге %TMP%) и закрытие всех JVM помогло.

Ответ 4

Это происходит, когда значение% TMP% отличается для контролируемого JVM и средства мониторинга (JConsole/JMC/Java Mission Control, возможно, даже VisualVM). Это может быть стандартный сценарий с Cygwin (по крайней мере, в моем случае: Cygwin + Babun) Самое простое решение - установить значение переменной среды TMP в значение по умолчанию, используемое Windows, по крайней мере в рамках оболочки, запускающей JVM.

Ответ 5

Вам нужно запустить jconsole с тем же пользователем, что и процесс, который вы хотите проанализировать, запускается.

Ответ 6

Если вы используете jconsole для окон - просто:

  • Найти jconsole.exe
  • Щелкните правой кнопкой мыши
  • Выберите запустите как администратор.