본문 바로가기
Old Posts/Java

[Java] jmap 에러 - InvocationTargetException, Supported versions are 24.201-b00. Target VM is 25.131-b11

by A6K 2021. 7. 21.

자바 애플리케이션의 메모리 덤프를 하기 위해 jmap 명령을 사용하다가 다음과 같은 에러를 만나게 되었다.

$ 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

jmap 명령을 사용할 때 비교적 빈번하게 만나는 에러다. 서버에 여러 버전의 JDK가 설치된 경우 발생한 문제로 자바 애플리케이션을 JDK 1.8 버전으로 구동하고 jmap은 JDK 1.7 버전으로 붙인 경우 버전이 호환되지 않아서 이와 같은 예외가 발생한다.

JVM을 실행한 JDK 버전을 잘 확인하고 동일한 버전의 jmap을 사용하면 예외없이 정상적으로 기능을 사용할 수 있게 된다.

댓글