실행중인 프로세스에서 사용하는 메모리를 분석하기 위해 JConsole을 실행하려고 시도했지만 JConsole이 실행 중이라는 것을 절대적으로 확신하고 있음에도 불구하고 프로세스를 표시하지 않습니다. JConsole은 프로세스 목록에도 있지만 그렇지 않습니다.)JConsole에서 프로세스를 찾을 수 없습니다.
누군가 프로세스를 표시하지 않는 이유는 누구입니까?
건배
실행중인 프로세스에서 사용하는 메모리를 분석하기 위해 JConsole을 실행하려고 시도했지만 JConsole이 실행 중이라는 것을 절대적으로 확신하고 있음에도 불구하고 프로세스를 표시하지 않습니다. JConsole은 프로세스 목록에도 있지만 그렇지 않습니다.)JConsole에서 프로세스를 찾을 수 없습니다.
누군가 프로세스를 표시하지 않는 이유는 누구입니까?
건배
나는 동일한 문제가 있습니다. 그러나 jconsole 1234
에서와 같이 명시 적으로 PID를 지정하면 jconsole이 프로세스를 분석 할 수 있습니다.
, echo prompt % TMP %를 실행하면 기본 temp 디렉토리가 표시됩니다. 해당 디렉토리로 이동하여 hsperfdata_라는 디렉토리를 찾으십시오. 로그인은 귀하의 로그인입니다. 이것은 프로세스 ID를 저장하기위한 디렉토리입니다. java 응용 프로그램과 같이 작성한 새 프로세스에는 프로세스 ID로 명명 된 새 파일이 있습니다. Jconsole은이 디렉토리에서 프로세스 ID를 선택합니다. 이 디렉토리에 파일을 만들 수 없다면 변경 허용이 필요하다는 뜻입니다. 일단 완료되면, 새 프로세스 ID 파일이 dir에 있는지 확인하기 위해 새 Java 응용 프로그램을 시작하십시오. 일단 확인되면 jconsole을 시작하십시오.
이는 모니터링 된 JVM 및 모니터링 도구 (JConsole/JMC/Java Mission Control, 심지어 VisualVM)의 % TMP % 값이 다를 때 발생합니다. Cygwin에서 표준 시나리오가 될 수 있습니다 (적어도 내 경우 Cygwin + Babun). 가장 쉬운 해결 방법은 TMP 환경 변수의 값을 적어도 JVM을 시작한 쉘의 범위에서 Windows가 사용하는 기본값으로 설정하는 것입니다.
내 경우에는 hsperfdata_USERNAME
디렉토리 (%TMP%
디렉토리)를 제거하고 모든 JVM을 닫는 것이 도움이되었습니다.
분석하려는 프로세스가 시작된 사용자와 동일한 사용자로 jconsole을 시작해야합니다.
심지어 나는 여전히 같은 사용자로부터 실행 중이므로 jconsole을 실행할 수 없습니다. –
Windows에서 jconsole을 실행하는 경우 - 단순히 :
어떻게 수행하나요? –