반응형
jmap을 이용해 자바 애플리케이션 힙 메모리 분석을 하다가 다음과 같은 예외(Exception)를 만나게 되었다.
$ jmap 1234
Attaching to process ID 1234, please wait...
Exception in thread "main" java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at sun.tools.jmap.JMap.runTool(JMap.java:197)
at sun.tools.jmap.JMap.main(JMap.java:128)
Caused by: sun.jvm.hotspot.runtime.VMVersionMismatchException: Supported versions are 24.201-b00. Target VM is 25.131-b11
at sun.jvm.hotspot.runtime.VM.checkVMVersion(VM.java:234)
at sun.jvm.hotspot.runtime.VM.<init>(VM.java:297)
at sun.jvm.hotspot.runtime.VM.initialize(VM.java:368)
at sun.jvm.hotspot.bugspot.BugSpotAgent.setupVM(BugSpotAgent.java:598)
at sun.jvm.hotspot.bugspot.BugSpotAgent.go(BugSpotAgent.java:493)
at sun.jvm.hotspot.bugspot.BugSpotAgent.attach(BugSpotAgent.java:331)
at sun.jvm.hotspot.tools.Tool.start(Tool.java:163)
at sun.jvm.hotspot.tools.PMap.main(PMap.java:67)
... 6 more
여러버전의 JDK가 설치된 경우 발생할 수 있는 문제다. 자바 애플리케이션을 구동한 JVM 버전은 JDK 1.8 버전을 사용하고 있는데 사용한 jmap의 JDK 버전이 1.7인 경우 버전이 맞지 않아 이와 같은 예외(Exception)가 발생한다.
자바 애플리케이션과 동일한 JDK 버전의 jmap을 사용하면 정상적으로 기능을 사용할 수 있게 된다.
반응형
댓글