>  기사  >  Java  >  자바를 디컴파일하는 방법

자바를 디컴파일하는 방법

(*-*)浩
(*-*)浩원래의
2019-12-04 10:20:145704검색

자바를 디컴파일하는 방법

디컴파일이란?

디컴파일의 과정은 정확히 컴파일의 반대입니다. 컴파일된 프로그래밍 언어를 컴파일되지 않은 상태로 복원하는 것, 즉 프로그래밍 언어의 소스 코드를 알아내는 것입니다. 기계가 이해할 수 있는 언어를 프로그래머가 이해할 수 있는 언어로 변환하는 것입니다.

Java 언어에서 디컴파일이란 일반적으로 클래스 파일을 Java 파일로 변환하는 것을 의미합니다. (추천 학습: java 강좌)

디컴파일 도구를 사용하면 많은 일을 할 수 있습니다. 가장 중요한 기능은 디컴파일 도구를 사용하면 Java 컴파일러에서 생성된 바이트코드를 이해할 수 있다는 것입니다. 예를 들어, Java 구문 설탕의 기본 원리를 이해할 수 있습니다.

일반적인 Java 디컴파일 도구

주로 javap, jad, cfr 4가지 Java 디컴파일 도구와 시각적 디컴파일 도구인 JD-GUI를 소개합니다.

JAVAP

javap은 jdk와 함께 제공되는 도구입니다. 코드를 디컴파일할 수 있고, Java 컴파일러에서 생성된 바이트코드도 볼 수 있습니다. javap와 다른 두 디컴파일 도구의 가장 큰 차이점은 생성하는 파일이 Java 파일이 아니며 다른 두 도구에서 생성된 코드만큼 이해하기 쉽지 않다는 것입니다.

javap은 바이트코드를 자바 파일로 디컴파일하지 않고, 우리가 이해할 수 있는 바이트코드를 생성합니다. 실제로 javap에 의해 생성된 파일은 여전히 ​​바이트코드이지만 프로그래머는 이를 좀 더 이해할 수 있습니다. 바이트코드에 대한 지식이 있으면 위 코드를 이해할 수 있습니다. 실제로는 String을 해시코드로 변환한 후 비교하는 것입니다.

JAD

JAD는 비교적 좋은 디컴파일 도구입니다. 실행 도구만 다운로드하면 클래스 파일을 디컴파일할 수 있습니다. 여전히 위의 소스 코드에서 jad를 사용하여 디컴파일한 후의 내용은 다음과 같습니다.

명령: jad.exe Decompilation.class는 Decompilation.jad 파일을 생성합니다.

CFR

JAD는 매우 유용하지만 안타깝게도 그렇지 않습니다. 오랫동안 사용 가능했지만 업데이트되었기 때문에 새로운 도구로만 교체할 수 있습니다. CFR은 JAD에 비해 구문이 조금 더 복잡할 수 있지만 다행히 사용할 수 있습니다. CFR은 최신 Java 기능을 디컴파일합니다. Java 8 람다(Java 및 이전 버전의 Java 베타 103), Java 7 문자열은 디컴파일되었지만 CFR은 완전히 Java 6으로 작성되었습니다.

JD-GUI

JD-GUI는 A입니다. Pavel Kouznetsov가 개발한 C++로 개발된 Java 디컴파일 도구는 Windows, Linux 및 Apple Mac Os의 세 가지 플랫폼을 지원합니다. 그리고 Eclipse 플랫폼에서 JD-Eclipse 플러그인을 제공합니다.

JD-GUI는 GPLv3 오픈 소스 라이선스를 기반으로 하며 개인 용도로는 완전 무료입니다. JD-GUI의 가장 중요한 점은 시각적인 작업을 제공하는 것입니다. 파일을 창에 직접 끌어다 놓을 수 있습니다. 효과 그림은 다음과 같습니다

위 내용은 자바를 디컴파일하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.