이클립스에 JAVA 클래스 파일 디컴파일러(Decompiler) 설치하기
개발 중 API 내부 구현이 궁금하거나 동작을 알아야 해서 봐야할 때가 있는데, 오픈소스가 아닌 경우 이미 컴파일 되어진 .class 파일만 존재하기 때문에 답답한 경우가 있으실 겁니다. 디컴파일러를 이용하면 컴파일된 .class 파일의 바이트코드를 기반으로 컴파일 규칙에 따라 다시 JAVA 문법으로 디컴파일할 수 있습니다.

다만 디컴파일러가 컴파일 규칙에 따라 디컴파일 하기 때문에 원본 소스와 똑같이 되돌릴 수 없고, 사람이 작성한 보기좋은 코드가 아닌 조금은 인위적인 인공지능(?)코드로 디컴파일 됩니다. 그러나 바이트코드가 아닌 우리가 개발시 사용하는 JAVA 문법에 맞게 소스를 보여주기 때문에 컴파일된 소스를 분석하는데 많은 도움이 될 수 있습니다.

이번 글에서는 이클립스의 Market place를 이용하여 디컴파일 플러그인을 설치하는 방법을 알아보겠습니다. 이클립스 버전별로 플러그인 설치 과정이 조금씩 다를 수 있으나 흐름대로 따라오시면 됩니다.

이클립스 상단 메뉴 Help > Eclipse Marketplace.. 를 클릭합니다.



마켓플레이스에서 Find 입력창에 decompile로 검색하면 아래와 같이 두 개의 결과가 나옵니다. 여기서 저는 Enhanced Class Decompiler를 설치해보겠습니다. Install을 클릭합니다.



주의할점으로 Enhanced Class Decompiler가 최신 버전의 이클립스에서는 돌아가지 않는것으로 보입니다. Neon까지는 잘 돌아가는것으로 보이는데 이후 버전은 테스트가 필요합니다. 만약 최신 버전의 이클립스를 사용하시는 분은 최신버전을 지원하는 디컴파일러 플러그인을 찾으시거나 이클립스 버전을 한단계 낮추어 보시기 바랍니다.


Confirm을 클릭합니다.




I accept... 에 체크해 동의 후 Finish를 클릭합니다.




보안 관련 경고가 나타나는데, 플러그인 설치시마다 나타나는 경고이므로 Install anyway를 클릭합니다.



Restart Now 클릭. 플러그인을 적용하기 위해 이클립스가 재시작됩니다.


 

 

 

 




컴파일된 소스 확인하기
컴파일러 플러그인 설치가 끝났다면 이클립스에서 Ctrl + Shift + T 를 눌러 Open Type 검색 팝업을 열고 가장 많이 사용하는 클래스인 java.lang.String 클래스를 검색합니다.




디컴파일된 String.class 파일이 열리는것을 확인할 수 있습니다.






컴파일러 설정
이클립스 상단메뉴의 Window -> Preferences


Java -> Decompiler 탭에 접근하면 설치한 디컴파일러 플러그인에 대한 설정을 할 수 있습니다. 디컴파일러 종류를 바꾸거나 디컴파일된 소스 표기 방법등을 설정할 수 있습니다.





이 글에서 설치한 디컴파일러인 Enhanced Class Decompiler에 대한 자세한 정보는 마켓플레이스나 GitHub를 참고합니다.
-> https://marketplace.eclipse.org/content/enhanced-class-decompiler
-> https://github.com/ecd-plugin/ecd

 

댓글에 garosero님께서 최신 이클립스 버전에서 디컴파일러가 작동하지 않는 경우 해결 방법에 남겨주셔서 따로 글로 작성해 보았습니다. 이클립스 네온 이후 버전이신분은 링크 참고 부탁드립니다.

 

블로그 이미지

도로락

IT, 프로그래밍, 컴퓨터 활용 정보 등을 위한 블로그

,