.jar 파일에서 소스 코드 추출


172

실행 가능한 .jar 파일 (Java ME)에서 소스 코드를 추출하는 방법이 있습니까?


3
그러나 병에 대한 저작권을 소유하고 있는지 여부, 거주 국가 및 사용 목적에 따라이 작업을 수행하는 것은 불법 일 수 있습니다.
Richard

2
공개 소스 인 경우 개발자에게 소스를 가져 오십시오. 그렇지 않으면 "EULA를 준수하면 감사하겠습니다".
앤드류 톰슨

프로 시저 디 컴파일러를 확인하십시오. jar 파일을 디 컴파일하려면 jar 파일을 다운로드하십시오. 나는 다음 단계 준
angadi 니틴

답변:


146

JD GUI를 사용하십시오 . 애플리케이션을 열고 JAR 파일을 끌어서 놓으십시오.


6
JD GUI없이 .jar에서 소스 코드를 얻는 방법이 있습니까?
Zulqurnain Jutt

@ZulqurnainJutt @elachance의 답변에 언급 된대로 사용jar xf filename.jar
Arvind Sridharan

46

다음 명령으로 jar 파일을 추출 할 수 있습니다.

jar xf filename.jar

참조 : Oracle JAR 문서


18
이 이름을 변경하는 것과 같습니다 filename.jarfilename.jar.zip그냥 압축을 해제 한 후합니다.
Mathias Bynens

27
소스 코드를 추출하지 않습니다. 컴파일 된 소스 코드를 추출합니다.
0xcaff

5
@caffinatedmonkey jar 파일이 자바 파일을 포함 할 때 소스 코드를 추출합니다. 예를 들어 이름이 "-sources"로 끝나는 jar 파일. jar에 Java 소스 파일이 포함되어 있지 않은 경우 실제로 .class 파일 만 추출합니다.
edwardmp

37

나는 이것이 매우 쉽게 이루어질 수 있다고 믿는다. jar 파일의 소스 파일 (Java 파일)을 zip으로 항상 추출 할 수 있습니다.

jar 파일의 소스를 zip으로 가져 오는 단계 :

  1. http://techieme.in/resources-needed/ 에서 JAD를 다운로드
    하여 시스템의 어느 위치 에나 저장하십시오 .
  2. JAD에서 소스를 원하는 jar을 끌어서 놓으십시오. 3 JAD UI는 모든 패키지 구조와 함께 트리 형식으로 열립니다.
  3. 파일 메뉴를 클릭하고 jar 소스 저장을 선택하십시오.
  4. 소스와 항아리 이름이 같은 Zip으로 저장됩니다.

도움이 되었기를 바랍니다.

JDGUI를 다운로드 할 수있는 위치에 링크를 추가하면 어떤 이유로 링크가 종료되었습니다.


1
@Nitesh ... 웹 사이트에 호스팅 된 링크를 게시 할 예정입니다. 여기에서 다운로드하십시오
dharam

4
techieme 링크의 버전은 아름답게 작동합니다. 감사합니다!
DerStrom8

29

JAR에는 source 및 javadoc이 포함될 수 있으며,이 경우 간단히 jar xf my.jar추출하기 위해 사용할 수 있습니다.

그렇지 않으면 adarshr의 답변에서 언급 한 것처럼 디 컴파일러를 사용할 수 있습니다.

JD GUI를 사용하십시오 . 애플리케이션을 열고 JAR 파일을 끌어다 놓으십시오.


21
.jar 파일은 실제로 .zip 파일이며 모든 ZIP 도구로 열 수 있습니다.
Chris Nava

11

나는 그것이 오래된 질문이라는 것을 알고 여전히 누군가를 도울 것이라고 생각했습니다.

1) jar 파일의 폴더로 이동하십시오.

2) 확장자를 .zip으로 변경하십시오.

3) 당신은 가서 두 번 클릭하여 쉽게 추출 할 수 있습니다.

참고 : MAC에서 이것을 테스트했는데 작동합니다. 바라건대 Windows에서도 작동하기를 바랍니다.


2
@JCodex, 나는 감정 분석 도구 "opinionfinder"에 대한 연구 프로젝트를 수행하고 있으며 그 항아리에는 실제로 Java 및 클래스 파일이 모두 포함되어 있습니다. 귀하의 의견은 100 % 사실이 아닙니다. 나는 보통 .class 만 포함 할 것이지만,이 경우에는 최소한은 아니라는 것을 알고있다
wired00

2
솔루션은 소스 코드가 아닌 .class 파일 만 추출합니다.
Carlos Sá

JD-GUI는 실제로 코드를 디 컴파일하고 모든 패키지의 클래스에 대한 소스 코드를 표시하는 다중 플랫폼 도구입니다. 나는 그것을 시도했고 MacOS에서 잠시 후 소스 코드를 얻을 수 있었다. Java 8이 설치되어 있습니다. 당신은 그것을 얻을 수 있습니다jd.benow.ca에서 . 큰 프로젝트에서 작동하는지 확실하지 않습니다.
Carlos Sá

1
설명하신 방식으로 제공되지 않는 소스 코드가 필요합니다
chiragchavda.ks

3

자바가 작동하는 리눅스 박스에서 다음을 수행하십시오 (터미널 방식과 같은 경우)

cd ~
mkdir decompiled_code && cd decompiled_code
wget https://bitbucket.org/mstrobel/procyon/downloads/procyon-decompiler-0.5.36.jar
java -jar procyon-decompiler-0.5.36.jar /Path/to/your/jar -o .

참고 : @Richard는 "병에 대한 저작권 보유 여부, 거주 국가 및 사용 목적에 따라 불법 일 수 있습니다."


특정 클래스 파일에 대해 당신이 할 수있는 Java -jar 프로키온 - 디 컴파일러-0.5.36.jar 패키지 /의 /은 / 자바 / class.class> className.java
니틴 angadi

0

AndroChef Java Decompiler는 프로젝트에서 직접 사용할 수있는 매우 우수한 코드를 생성합니다 ...


-2

위의 도구는 항아리를 추출합니다. 또한 항아리를 추출하는 다른 도구와 명령이 있습니다. 그러나 AFAIK는 코드가 난독 화 된 경우 Java 코드를 얻을 수 없습니다.


7
가장 큰 답변
fnc12

-6

JAR 파일이 C : \ Documents and Settings \ mmeher \ Desktop \ jar에 있고 JAR 파일 이름이 xx.jar라고 가정하고 명령 프롬프트에 아래 두 명령을 작성하십시오.

1> cd C : \ Documents and Settings \ mmeher \ Desktop \ jar

2> jar xf xx.jar


-6

-.jar 파일을 .zip으로 변환하십시오 (Windows에서는 확장명을 변경하십시오)-.zip 폴더의 압축을 풉니 다-완전한 .java 파일을 얻을 수 있습니다


3
이 방법에 대한 작은 메모로 ... jar 파일은 멋진 zip 파일이라는 것이 사실입니다. 그러나 jar 파일을 압축 해제하면 * .class 파일, 즉 "컴파일 된"java 파일이 생성됩니다. 클래스 파일을 일반 Java 파일로 "디 컴파일"할 수 있습니다. 이 기능은 많은 IDE에 포함되어 있습니다
Daniel Hernandez

클래스 파일을 잠금 해제합니다
Harshil
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.