본문 바로가기
IT/기타

java class, jar파일 디컴파일하기

by heavenLake 2023. 1. 5.
반응형

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

 

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

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

 

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

 

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

 

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

 

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

 

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

 

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

 

 

원 본 :    https://coding-factory.tistory.com/831

반응형

댓글