2017-04-10 10 views
3

클래스가 jvm에로드되었는지 여부를 판단 할 수있는 방법이 있습니까? 내 의견으로는, 그 길은 findClass 인 것 같아요, 맞습니까?클래스가 jvm에로드되었는지 여부를 판단 할 수있는 방법이 있습니까?

+0

요구 사항에 따라 다릅니다. 클래스가 검색 될 때, 바이트 코드를 통해로드되고 따라서'.class' 객체를 갖거나 초기화 될 때입니까? –

+0

로드되어 삭제 될지도 모릅니다. 따라서, Aop기구 등, 오브젝트 클래스로부터 판단 할 수 없다고 생각합니다. – flower

+3

진짜 질문은 아마도 : 왜 그렇게 생각하니? 다시 말해, 그러한 판단을 통해 해결하고자하는 문제는 무엇입니까? – GhostCat

답변

1

좋아요, 그래서 이것을하지 않았습니다. 그러나 Instrumentation APIgetAllLoadedClasses()을 통해 가능할 것으로 보입니다.

하지만 여전히 agent으로 JVM을 시작해야합니다.

+0

JVM에 따라 시작 후 에이전트를 동적으로로드 할 수 있습니다 (예 : 첨부 API를 통해 [이 답변] (http://stackoverflow.com/a/19912148/2711488) 끝에는 마침내 Instrumentation API를 사용하기 위해 자체 JVM에 에이전트를로드하는 예제 프로그램이 있습니다. – Holger

0

-verbose:class으로 클래스 로더 로깅을 켜고 로그를 읽습니다.

+1

JVM을 이미 시작했고 현재 실행중인 경우는 무엇입니까? – Eugene

0

JConsole과 같은 jdk 도구를 사용할 수 있습니다.