자바에서 클래스 디 컴파일

1. 소개

이 자습서에서는 Java 클래스 디 컴파일에 대해 설명합니다. 소스 코드를 사용할 수없는 경우 Java 클래스를 디 컴파일하면 소스 코드 동작을 디버그하고 이해하는 데 도움이됩니다.

사용 가능한 다양한 옵션을 살펴 보겠습니다.

2. IDE에서 디 컴파일

대부분의 개발은 IDE (통합 개발 환경)에서 수행되므로 디 컴파일도 IDE에서 수행되어야합니다.

작업 할 IDE에 대한 자세한 내용은 Eclipse에서 디버그하는 방법 및 IntelliJ IDEA 구성에 대한 기사를 확인하십시오.

2.1. 식

첫째, Eclipse에서 ECD (Enhanced Class Decompiler)와 같은 플러그인이 필요합니다. 이 플러그인은 다섯 가지 디 컴파일러를 사용합니다. Eclipse Marketplace에서 설치할 수 있으며 Eclipse를 다시 시작해야합니다.

다음으로 ECD는 클래스 파일을 클래스 디 컴파일러 뷰어와 연결하기 위해 약간의 설정이 필요합니다.

또한 " .class without source"파일 을 연결해야 합니다.

마지막으로, 우리는 눌러 디 컴파일러를 사용할 수있는 Ctrl 키 + 왼쪽 클릭을 A의 클래스 이름입니다. 파일 탭에서 괄호로 묶인 디 컴파일러를 볼 수 있습니다.

이 예에서는 FernFlower를 사용하고 있습니다.

2.2. IntelliJ IDEA

Eclipse와 달리 IntelliJ IDEA는 FernFlower 디 컴파일러를 기본 .

이를 사용하려면 클래스 이름을 Ctrl + 왼쪽 클릭 하고 코드를 봅니다.

또한 소스를 다운로드 할 수 있습니다. 소스를 다운로드하면 실제 코드와 주석이 제공됩니다.

예를 들어, 위 스크린 샷 의 Component 주석 클래스에는 Component 사용에 대한 Javadoc이 포함되어 있습니다 . 차이점을 알 수 있습니다.

디 컴파일은 매우 유용하지만 항상 완전한 그림을 제공하지는 않습니다 . 전체 소스 코드는 우리에게 완전한 그림을 제공합니다.

3. 명령 줄 디 컴파일

IDE 플러그인 이전에는 클래스를 디 컴파일하는 데 명령 줄이 사용되었습니다. 명령 줄 디 컴파일러는 IDE 또는 GUI로 액세스 할 수없는 원격 서버에서 Java 바이트 코드를 디버깅하는데도 유용 할 수 있습니다.

예를 들어, 간단한 jar 명령을 사용하여 JDCommandLine으로 디 컴파일 할 수 있습니다.

java -jar JDCommandLine.jar ${TARGET_JAR_NAME}.jar ./classes

./classes 매개 변수를 그대로 두지 마십시오. 출력 디렉토리를 정의합니다.

디 컴파일에 성공하면 출력 디렉터리에 포함 된 소스 파일에 액세스 할 수 있습니다. 이제 Vim과 같은 텍스트 편집기를 통해 볼 준비가되었습니다.

4. 결론

Eclipse 및 IntelliJ IDEA IDE의 디 컴파일과 사용할 수없는 경우 명령 줄 옵션을 살펴 보았습니다.

또한 소스 코드 연결과 디 컴파일의 차이점도 살펴 보았습니다.