클래스 파일을 디 컴파일하기 위해 어떤 프로그램을 사용할 수 있습니까? 실제로 Java 코드를 받습니까 아니면 JVM 어셈블리 코드입니까?
이 사이트의 Java 성능 관련 질문에서, 종종 Java 클래스 파일을 “디 컴파일”한 사람들의 응답을보고 컴파일러가 특정 사항을 최적화하는 방법을 확인합니다.
답변
2016 년 2 월 업데이트 :
www.javadecompilers.com 은 JAD를 다음과 같이 나열합니다.
가장 인기있는 Java 디 컴파일러이지만 주로이 시대에만 사용됩니다. C ++로 작성되었으므로 매우 빠릅니다.
오래되고 지원되지 않으며 올바르게 Java 5 이상을 디 컴파일하지 않습니다.
따라서 마일리지는 최근 jdk (7, 8)에 따라 다를 수 있습니다.
동일한 사이트에 다른 도구가 나열됩니다.
Salvador Valencia 가 주석 (2017 년 9 월) 에 언급 한 바와 같이 javadecompiler 는 .class
파일을 클라우드에 업로드 하고 디 컴파일 된 코드를 반환 하는 SaaS를 제공합니다 .
원래 답변 : 2008 년 10 월
- J2SE 5.0 (Java SE 5)의 주요 기능을 정의하는 JSR 176의 최종 릴리스는 2004 년 9 월 30 일에 공개되었습니다.
- Pavel Kouznetsov가 작성한 유명한 Java 디 컴파일러 인 JAD가 지원하는 최신 Java 버전은 JDK 1.3 입니다.
- “DJ Java Decompiler”또는 “Cavaj Java Decompiler”와 같이 오늘날 인터넷에서 다운로드 할 수있는 대부분의 Java 디 컴파일러는 JAD에 의해 구동되며 Java 5 소스를 표시 할 수 없습니다.
Java Decompiler (아직 다른 Fast Java 디 컴파일러)에는 다음이 있습니다.
- Java 5+ “.class”파일의 디 컴파일 및 분석을위한 명시 적 지원
- 좋은 GUI :
JDK 1.1.8에서 JDK 1.7.0까지의 컴파일러 및 기타 ( Jikes , JRockit 등) 와 함께 작동합니다 .
실제로 완벽하게 작동 하는 온라인 라이브 데모 버전 이 있습니다! 페이지에 jar 파일을 드롭하고 아무것도 설치하지 않고 디 컴파일 된 소스 코드를 볼 수 있습니다.
답변
디 컴파일러가 몇 개 있습니다 … 빠른 검색 결과 :
- 프로키온 : 오픈 소스 (Apache 2) 및 적극적으로 개발
- 크라 카타 우 : 오픈 소스 (GPLv3) 및 적극적으로 개발
- CFR : 오픈 소스 (MIT) 및 적극적으로 개발
- JAD
- DJ 자바 디 컴파일러
- 모카
그리고 더 많은.
이것들은 Java 코드를 생성합니다. Java에는 JVM 바이트 코드 ( javap ) 를 볼 수있는 기능이 있습니다 .
답변
Java 소스 코드를 보려면 디 컴파일러를 확인하십시오. jad 검색으로 이동하십시오 .
바이트 코드를 보려면 JDK와 함께 제공되는 javap 를 사용하십시오 .
답변
나는 여러 가지를 시도했지만 Procyon 은 나에게 가장 잘 작동하는 것처럼 보였다. 현재 개발 중이며 최신 Java 버전의 많은 기능을 지원합니다.
이것들은 내가 시도한 다른 것입니다.
- CFR
- 유망하지만 종종 메소드 디 컴파일에 실패했습니다. 나는 이것에 계속 내 눈을 유지합니다. 또한 최신 Java 기능을 지원하여 적극적으로 개발되었습니다.
- 크라 카타 우
- 원본 소스를 재구성하는 대신 동등한 Java 코드를 출력하려고 시도하는 다른 접근 방식을 취합니다. 내 테스트에서 Procyon과 거의 비슷한 수준이지만 여전히 다른 것이 좋습니다.
-skip
오류가 발생하지 않도록 명령 줄 플래그 를 사용해야했습니다 . 적극적으로 개발되었고 흥미롭게도 파이썬으로 작성되었습니다.
- 원본 소스를 재구성하는 대신 동등한 Java 코드를 출력하려고 시도하는 다른 접근 방식을 취합니다. 내 테스트에서 Procyon과 거의 비슷한 수준이지만 여전히 다른 것이 좋습니다.
- JD-GUI
- 효과가 있었지만 Procyon의 출력은 훨씬 나았습니다. 다음은 Procyon 출력과 원본 및 JD-GUI를 비교 하는 페이지 입니다. JD-GUI는 Eclipse 플러그인 으로도 제공되며 전혀 작동하지 않습니다. 오픈 소스가 아닌 것 같고 개발은 산발적으로 보입니다.
- JAD
- 작동했지만 Java 1.4 이하 만 지원합니다. Eclipse 플러그인 으로도 사용 가능 합니다. 더 이상 개발 중이 아닙니다.
답변
JAD Decompiler를 사용 합니다.
가 이클립스 그것을위한 플러그인, jadeclipse는 . 그것은 꽤 좋다.
답변
프로키온 에는 디 컴파일러가 포함되어 있습니다. FOSS입니다.
답변
그을음 은 최신 Java 코드를위한 옵션입니다. 적어도 그것은 여전히 최근에 유지되고 있다는 장점이 있습니다 …
또한 Java Decompiler 는 독립형 GUI와 Eclipse 통합을 모두 갖춘 디 컴파일러입니다.
마지막으로 Jdec 은 언급되지 않았지만 다른 옵션만큼 세련되지는 않았습니다.