2009-09-06 3 views
31

Java 클래스를 일괄 디 컴파일하는 프로그램을 찾고 있습니다. JAD를 찾았지만 Java의 새로운 기능을 지원하지 않았으며이 프로그램의 이점은 명령 줄에서 실행하여 * .java 파일을 자동으로 생성 할 수 있다는 점입니다.JD-GUI로 Java 파일을 일괄 디 컴파일 (decompiling)

나는 또한 JD-GUI를 발견했다. Java의 대부분의 기능을 지원하지만 단점은 일괄 처리를 수행 할 수 없다는 것입니다. 프로그램으로 클래스 파일을 열고 저장을 클릭해야합니다.

JAD와 같이 배치 처리를 수행하는 방법이 있습니까?

답변

48

JD-GUI 용 명령 줄 디 컴파일은 highly requested 기능이지만 아직 구현되지 않았습니다. 아마도 다음과 같은 해결 방법을 사용할 수 있습니다.

  1. 함께 디 컴파일하려는 모든 클래스를 jar (또는 zip)로 압축합니다.
  2. JD-GUI를 실행하고 jar (zip) 아카이브를 엽니 다.
  3. "파일"- "JAR 원본 저장"메뉴 옵션을 사용하십시오. 아카이브의 모든 클래스를 디 컴파일하여 소스를 다른 zip 파일에 저장합니다.

불행히도 커맨드 라인 지원으로 좋은 오픈 소스 JD-GUI 대안을 보지 못했습니다. 그래서 위의 내용이 지금 당장 좋은 것으로 생각됩니다.

+10

을 그냥 JD를 사용하는 CLI 래퍼를 발견했습니다 - https://github.com/nviennot/ 참조 jd-core-java –

+1

이것 역시 유망 해 보입니다 (실제로 Rob W가 언급 한 포크 중 하나입니다). 라이브러리도 제공합니다. 하지만 아직 테스트하지는 못했습니다 : https://github.com/kwart/jd-cmd – ozeebee

+0

홈페이지에 드래그 앤 드롭 디 컴파일러가 추가되었습니다. 그게 무슨 뜻인지 알지 ...) –

3

JadRetro과 함께 Jad를 사용하는 것이 좋습니다. 물론 Jad에서 Java 제네릭을 만들 수는 없지만 (자바 1.5+ 클래스를 포함하여) 디 컴파일 된 소스는 기능적으로 원본과 동일합니다. 사례).
그것의 사용은 간단하다 :

jadretro *을 .class
JAD

노트의 .class :
JadRetro이 같은 배치 모드에서 사용할 수있는 1 :
2 ... jadretro 당신이 만약 (최신 v1.5.8g 대신) jad v1.5.8e를 사용하고 있다면 "-c"옵션을 jadretro에 전달해야합니다 (그렇지 않으면 jad는 Java 1.5+ 클래스를 디 컴파일하지 않습니다).

1

커맨드 라인을 사용하여 GUI를 한꺼번에 실행 한 다음 각 탭에서 Ctrl + Alt + Ctrl + W를 빠르게 눌러서 저장/닫을 수 있습니다. 의존성 더미를 디 컴파일 할 때 자동화는되지 않지만 용인 할 수 있습니다. ((가) "^"는 Windows에서 명령을 여러 줄을 수행하기위한 단지 속임수 있습니다.)

"c:\jd-gui-0.3.6.windows\jd-gui.exe"^
c:\my-libs\lib-a.jar^
c:\my-libs\lib-b.jar^
c:\my-libs\lib-c.jar^
c:\my-libs\lib-d.jar^
c:\my-libs\lib-e.jar 
관련 문제