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
- Щелкните правой кнопкой мыши
- Выберите запустите как администратор.