2012-12-06 4 views
14

실행중인 프로세스에서 사용하는 메모리를 분석하기 위해 JConsole을 실행하려고 시도했지만 JConsole이 실행 중이라는 것을 절대적으로 확신하고 있음에도 불구하고 프로세스를 표시하지 않습니다. JConsole은 프로세스 목록에도 있지만 그렇지 않습니다.)JConsole에서 프로세스를 찾을 수 없습니다.

누군가 프로세스를 표시하지 않는 이유는 누구입니까?

건배

답변

10

나는 동일한 문제가 있습니다. 그러나 jconsole 1234에서와 같이 명시 적으로 PID를 지정하면 jconsole이 프로세스를 분석 할 수 있습니다.

+1

어떻게 수행하나요? –

15

, echo prompt % TMP %를 실행하면 기본 temp 디렉토리가 표시됩니다. 해당 디렉토리로 이동하여 hsperfdata_라는 디렉토리를 찾으십시오. 로그인은 귀하의 로그인입니다. 이것은 프로세스 ID를 저장하기위한 디렉토리입니다. java 응용 프로그램과 같이 작성한 새 프로세스에는 프로세스 ID로 명명 된 새 파일이 있습니다. Jconsole은이 디렉토리에서 프로세스 ID를 선택합니다. 이 디렉토리에 파일을 만들 수 없다면 변경 허용이 필요하다는 뜻입니다. 일단 완료되면, 새 프로세스 ID 파일이 dir에 있는지 확인하기 위해 새 Java 응용 프로그램을 시작하십시오. 일단 확인되면 jconsole을 시작하십시오.

+1

java 프로세스가 cygwin에서 시작된 경우 예상보다 다른 TEMP 폴더가 있습니다. jconsole은 탐색기에서 시작하여 프로세스를 찾지 못합니다. – Kai

+0

고마워요 제임스! 나에게 맞는 권한 수정! :) – baraka

1

이는 모니터링 된 JVM 및 모니터링 도구 (JConsole/JMC/Java Mission Control, 심지어 VisualVM)의 % TMP % 값이 다를 때 발생합니다. Cygwin에서 표준 시나리오가 될 수 있습니다 (적어도 내 경우 Cygwin + Babun). 가장 쉬운 해결 방법은 TMP 환경 변수의 값을 적어도 JVM을 시작한 쉘의 범위에서 Windows가 사용하는 기본값으로 설정하는 것입니다.

2

내 경우에는 hsperfdata_USERNAME 디렉토리 (%TMP% 디렉토리)를 제거하고 모든 JVM을 닫는 것이 도움이되었습니다.

0

분석하려는 프로세스가 시작된 사용자와 동일한 사용자로 jconsole을 시작해야합니다.

+0

심지어 나는 여전히 같은 사용자로부터 실행 중이므로 jconsole을 실행할 수 없습니다. –

0

Windows에서 jconsole을 실행하는 경우 - 단순히 :

  1. jconsole.exe
  2. 을 찾아 마우스 오른쪽 관리자로는
  3. 선택 실행을 클릭합니다.