참고 : https://slipp.net/questions/292 자바지기님
지금까지 bytecode를 읽기 위해 javap 명령어를 사용했다. javap 명령어를 활용해도 되지만 UI가 그리 뛰어난 것도 아니고 매번 명령을 실행하는 것도 귀찮았다. 혹시 괜찮은 eclipse 플러그인이 찾아봤더니 역시나 있네.
eclipse Marketplace에서 bytecode로 검색하면 Bytecode Visualizer라는 놈이 제일 먼저 뜬다. 이 놈을 활용해 보겠다. 먼저 Bytecode Visualizer 플러그인을 설치한다.
eclipse는 기본적으로 class 파일을 직접 볼 수 없다. bytecode를 분석하려면 eclipse내에서 class 파일을 볼 수 있어야 한다. http://stackoverflow.com/questions/6780182/eclipse-show-generated-class-files 를 참고해 class 파일을 볼 수 있다. Project Explorer View에서 View 설정에서 Java output folders에 대한 필터 설정을 해제하면 된다.
class 파일을 직접 더블클릭해서 Class File Viewer가 열린다. class 파일 > 오른쪽 클릭 > Bytecode Visualizer로 열어야 한다. 기본 file association을 Bytecode Visualizer로 해주어도 정상적으로 열리지 않는다. 위 과정으로 파일을 열면 다음과 같은 화면을 볼 수 있다.
위 과정으로 파일을 열면 소스 코드와 bytecode 사이를 이동할 수 있다. class 파일을 더블클릭했을 때 자동으로 Bytecode Visualizer Editor를 열고 싶으면 다음과 같은 과정으로 진행할 수 있다.
- Window > Preferences > Editor > File Associations로 이동한다.
- *.class는 정상적으로 연결되어 있으니 무시하고 .class without source 항목을 Bytecode Visualizer로 연결한다.
단, 이 경우의 단점은 소스 코드 탭에 소스 코드가 나타나지 않는다는 것이다. 굳이 소스 코드를 보지 않아도 괜찮다면 이 방식으로 접근하는 것이 좀 더 편할 듯 하다.
자신이 구현한 소스 코드의 byte code가 궁금하다면 이 같은 플러그인을 활용해 좀 더 직관적으로 파악해 보자.
'java' 카테고리의 다른 글
String 메모리에 대한 고찰. (0) | 2017.02.17 |
---|---|
제네릭 한번더 상기!! (0) | 2017.02.17 |
swap 메모리 (0) | 2017.02.15 |
UML 다이어그램 종류 구조 7개, 행위 7개 총 14개 (2) | 2017.02.13 |
java.io.FilePermission 에러 java.security.AccessControlException 에러 (0) | 2017.01.13 |