[Java] 자바(.jar, .class 파일) 디 컴파일 하는법
- Language/Java
- 2022. 3. 18.
자바로 작성되어있는 .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/
2. 다운받은 zip 파일을 원하는 위치에 압축해제시켜줍니다.
3. 압축을 풀은 위치로 가셔서 jd-gui.exe를 실행시킵니다.
4. Java Decompiler가 실행되면 상단 메뉴에서 File -> Open을 눌러 디컴파일 하고 싶은 .class 파일이나 .jar파일을 선택하고 열기 버튼을 클릭합니다. 저는 Tomcat의 Catalina.jar를 디컴파일 해볼게요.
5. 열기 버튼을 클릭하시면 자동으로 디컴파일이 진행됩니다. 위의 그림처럼 .class 파일이 디컴파일 되어 잘 보이는 것을 보실 수 있습니다.
※ 자바의 javac 컴파일러 최적화 옵션이 켜져있다면 .java -> .class 컴파일 과정에서 소스가 바뀔 수 있기 때문에 디 컴파일하더라도 기존의 소스와는 조금 달라질 수 있습니다.
'Language > Java' 카테고리의 다른 글
[Java] javac 명령어를 활용하여 자바(.java) 파일 컴파일하기 (0) | 2022.04.08 |
---|---|
[Java] 자바 클래스(.class)파일 컴파일 버전 확인하기 (0) | 2022.04.07 |
[Java] 메모리 구조 메소드(Method), 스택(Stack), 힙(Heap) 영역에 대하여 (0) | 2022.03.12 |
[Java] 가비지 컬렉션(GC, Garbage Collection) 총정리 (1) | 2022.03.09 |