프로그래밍 언어/JAVA

[명령어] javap 명령어

투칼론 2022. 10. 17. 21:23
반응형

1. 개요

javap는 하나 이상의 클래스(class) 파일을 디스어셈블(disassemble) 하는 명령어이다.

 

사용법은 아래와 같다.

$ javap [클래스] 

 

예를들어,

$ javap  HelloWorld  명령을 실행하면,

Compiled from "HelloWorld.java"

public class HelloWorld {

  public HelloWorld();

  public static void main(java.lang.String[]);

}

javap 명령어는 어느 자바 소스로 부터 컴파일되었고, 필드와 메소드를 확인할 수 있다.

 

2. 클래스(class) 파일이 컴파일된 자바 버전 확인

javap 명령어가 필요한 경우에는 클래스(class) 파일이 컴파일된 자바 버전을 알고 싶을 때, 자주 사용된다.

예를들어,  아래 명령어 결과로 HelloWorld 클래스는  JDK 8 버전의 javac로 컴파일되었다는 것을 확인할 수 있다.

 

$ javap  -verbose  HelloWorld  | grep major

major  version:   52  

자바버전 = major version (hex)
Java SE 18 = 62 (0x3E hex),
Java SE 17 = 61 (0x3D hex),
Java SE 16 = 60 (0x3C hex),
Java SE 15 = 59 (0x3B hex),
Java SE 14 = 58 (0x3A hex),
Java SE 13 = 57 (0x39 hex),
Java SE 12 = 56 (0x38 hex),
Java SE 11 = 55 (0x37 hex),
Java SE 10 = 54 (0x36 hex),
Java SE 9 = 53 (0x35 hex),
Java SE 8 = 52 (0x34 hex),
Java SE 7 = 51 (0x33 hex),
Java SE 6.0 = 50 (0x32 hex),
Java SE 5.0 = 49 (0x31 hex),
JDK 1.4 = 48 (0x30 hex),
JDK 1.3 = 47 (0x2F hex),
JDK 1.2 = 46 (0x2E hex),
JDK 1.1 = 45 (0x2D hex).

[참조] https://en.wikipedia.org/wiki/Java_class_file