[Java] 자바(.jar, .class 파일) 디 컴파일 하는법

자바로 작성되어있는 .java 파일을 컴파일하게 되면 바이트코드인 .class 클래스 파일이 생성됩니다. 이렇게 생성된 class 파일을 열면 JVM에서만 해석할 수 있는 알 수 없는 코드들로 작성되어 있어 개발자 입장에서는 알아볼 수가 없는데요. 그렇기 때문에 class 파일의 내용을 확인하기 위해서는 class 파일을 다시 java 파일로 바꿔주는 디컴파일 과정이 필요합니다.

 

 자바 디컴파일러 JD-GUI 다운로드 & 사용법 

JD-GUI는 현재 가장 널리 사용되는 자바 디컴파일러로 가벼우면서도 강력한 기능을 가지고 있습니다. 배포파일의 class 파일 확인이나, 라이브러리 jar파일 안에 있는 파일들의 코드를 확인하고 싶을 때 유용하게 사용됩니다.

 

JD-GUI 다운로드1

1. 아래 링크된 사이트에 들어간 뒤 JD-GUI의 Download 탭에서 자신이 사용하고 있는 운영체제에 맞는 설치파일을 다운로드합니다. 제가 사용하고 있는 OS는 Windows이기 때문에 zip 파일을 다운로드하도록 하겠습니다.

http://java-decompiler.github.io/

 

Java Decompiler

The “Java Decompiler project” aims to develop tools in order to decompile and analyze Java 5 “byte code” and the later versions. JD-GUI is a standalone graphical utility that displays Java source codes of “.class” files. You can browse the reco

java-decompiler.github.io

 

JD-GUI 다운로드2

2. 다운받은 zip 파일을 원하는 위치에 압축해제시켜줍니다.

 

JD-GUI 실행

3. 압축을 풀은 위치로 가셔서 jd-gui.exe를 실행시킵니다.

 

디컴파일 대상 열기

4. Java Decompiler가 실행되면 상단 메뉴에서 File -> Open을 눌러 디컴파일 하고 싶은 .class 파일이나 .jar파일을 선택하고 열기 버튼을 클릭합니다. 저는 Tomcat의 Catalina.jar를 디컴파일 해볼게요.

 

디컴파일 완료

5. 열기 버튼을 클릭하시면 자동으로 디컴파일이 진행됩니다. 위의 그림처럼 .class 파일이 디컴파일 되어 잘 보이는 것을 보실 수 있습니다.

 

※ 자바의 javac 컴파일러 최적화 옵션이 켜져있다면 .java -> .class 컴파일 과정에서 소스가 바뀔 수 있기 때문에 디 컴파일하더라도 기존의 소스와는 조금 달라질 수 있습니다. 

댓글

Designed by JB FACTORY