.jar 파일의 내용보기


226

jar 파일에서 클래스, 메소드, 속성 등을 보는 가장 쉬운 방법은 무엇입니까? 나는 매우 유용한에 해당 뭔가를 찾고 있어요 루츠 Roeder .NET 반사판 - 자바


12
왜 대답을 받아들이지 않습니까?
이상현

4
@HughLee이 질문을 한 사람은 8 년 전에 물었습니다 . 그렇기 때문에 답변이 100 개의 투표율 IMO에
Kolob Canyon 18

@KolobCanyon true, 그러나이 답변이 요청 된 당일에 최고 등급의 답변이 제출되었습니다
Pranav A.

1
대답은 다음에서 온다 : https://superuser.com/a/808938/1045397 vim vim file_name.jar
byte mamba

답변:


280

JDK를 사용하면 jar -tfjar 파일이 나열됩니다. javap특정 클래스 파일에서 자세한 내용을 제공합니다.


3
@salvob tar옵션이 필수 이므로 하이픈이 필요하지 않습니다 .
Tom Hawtin-tackline

2
참고 로, 시스템 명령으로 C:\Program Files\Java\jdk<version>\bin사용하기 전에 시스템 또는 사용자 PATH 환경 변수에 추가해야 할 수도 있습니다 jar. (여기서 <version>은 jdk 버전 빌드 번호입니다. 체크인하십시오 C:\Program Files\Java)
Tezra

1
javap 예제 : javap -classpath test.jar com.yourpackage.HelloWorld
mPrinC

비 클래스 파일 (예 : 매니페스트)의 내용을 보려면 다음과 같이하십시오. tar -xOzf test.jarjar tf test.jar | grep MANIFEST
mPrinC

55

나는 보통 7-Zip으로 그것들을 연다. 그것은 적어도 패키지와 클래스와 리소스를 볼 수있게한다.
메소드 또는 필드를 볼 필요가 있다면 Jad를 사용하지만 물론 JavaDoc에 의존하는 것이 좋습니다 ...

이제 SO 어딘가에 어떤 Eclipse 파일이 클래스가있는 jar 파일인지 찾기 위해 Eclipse 플러그인이 언급되었습니다. 아마도 더 많은 작업을 수행 할 수 있습니다 (예 : 요청한 것).

[편집] SO 스레드 참조. 묻는 것은 아니지만 어떻게 든 관련이 있으므로 유용합니다. Java : 클래스 이름이 주어진 jar 파일을 어떻게 알 수 있습니까?


URL이 파킹되면 Jad 사이트에 대한 링크가 제거되었습니다. 여전히 web.archive.org/web/20080106184313/http://www.kpdus.com/… 에서 찾을 수 있지만 Jad는 오늘날 구식입니다.
PhiLho

35

내가 개인적으로 사용하는 것은 JD-GUI입니다. 무료 '디 컴파일러'로, 클래스의 소스 코드, 클래스 및 객체를 볼 수있을뿐만 아니라 왼쪽의 트리 메뉴에서 파일 구조를 볼 수 있습니다. 그러나 클래스를 직접 수정할 수는 없습니다.

JD-GUI 웹 사이트 : http://jd.benow.ca/


이것은 크로스 플랫폼에서 작동하지만 다른 답변에서 언급 한 7-Zip은 Windows 전용입니다.
브래드 큐핏

OS X에서 Archive Utility 를 사용 했는데 정상적으로 작동했습니다. 대부분의 (un) zip 유틸리티는 플랫폼에 관계없이 작동해야합니다.
Greenonline

23

누군가 이것을 이미 모르는 경우 JAR 파일은 프로그램의 클래스, 리소스 등 및 일부 메타 데이터를 포함하는 ZIP 파일 일뿐입니다. 하나를 추출하여 구성 방법을 확인할 수 있습니다.

따라서 unzip기억하고 사용하기 쉬운 명령을 사용하고 있습니다.

unzip -l <jar-file-name>.jar

당신이 이름으로 jar 파일이있을 경우 예를 들어, test.jar다음 unzip -l test.jarjar 파일의 내용을 모두 나열합니다.

다른 모든 답변은 훌륭하지만, 그러나 대부분에, 당신은 같은 일부 소프트웨어를 사용하는 것 7 zip또는 JDK이 당신을 필요로하지 않는 동안 W /이 큰의의를 가지고 다른 일식 도구 또는 그것은 리눅스에서 기본적으로 제공 Mac은 매우 가볍고 사용하기 편리합니다 .

을 사용할 수도 있습니다 zipinfo <your jar file>. OS가이를 지원하는 경우


1
@Boop 제안에 감사드립니다. 답변에 추가하겠습니다
Opster Elasticsearch Ninja

1
파일 탐색기가 zip을 지원하는 경우 jar의 이름을 .zip으로 바꾸면 (예 : Windows)
Rhayene

16

메소드 명, 필드 등

IDE에서 프로젝트에 jar를 추가하면 일반적으로 메소드와 필드 이름을 볼 수 있지만 자세한 구현은 볼 수 없습니다. NetBeans, Eclipse, IntelliJ 등이 가능합니다. IDE 내에서 jar 구조를 직접 찾아 볼 수 있습니다.

내용 만

내용을 보는 것과 같은 것을 위해 다음을 사용할 수 있습니다.

  • jar tvf jarfile.jar
  • winzip 또는 zip 도구

소스 코드

소스 코드에 액세스하려면 JAD 또는 프론트 엔드 중 하나 또는 다른 디 컴파일러와 같은 디 컴파일러를 사용합니다. 코드가 난독 화되면 ...



7
jar -tvf file_name.jar

의 파일 이름인쇄합니다 .

파일의 내용을 보려면 다음 방법으로 폴더의 파일을 추출 할 수 있습니다 .

jar -xvf file_name.jar

이것은 jar 파일의 압축을 풀고 이것을 실행중인 동일한 디렉토리에 내용을 넣습니다.

또는 Windows에서 .jar 파일의 이름을 .zip으로 바꾸고 압축을 풀면 jar 파일의 내용을 추출하고 볼 수 있습니다. jar은 내부적으로 zip 파일입니다.


6

WinRar를 사용하십시오 . 폴더 구조가 그대로 열립니다. 경로를 유지하면서 아카이브 내 편집도 가능합니다.

결국 JAR 파일은 ZIP 아카이브입니다.


6

내부에 무엇이 있는지 보려면 아래의 첫 번째 옵션으로 이름을 바꾸십시오.

  1. F2 & Rename to jarfile.zip // 지퍼 풀기 사용 ​​...

  2. jar tvf jarfile.jar

  3. jar tf jarfile.jar


5

올바르게 이해하면 클래스뿐만 아니라 메서드, 속성 등도보고 싶습니다. 내가 할 수있는 유일한 도구는 Eclipse입니다. 프로젝트 클래스 경로에 항아리를 추가하면 일반적인 패키지 탐색기를 사용하여 메소드와 속성으로 클래스를 탐색 할 수 있습니다.

어쨌든, 이것은 좋은 독립형 Java 도구에 대한 좋은 아이디어입니다


jar은 "libs"뿐만 아니라 "References library"폴더에 있어야합니다. 그리고 Apache Commons 라이브러리의 경우 source.jar을 탐색하지 않고 원본을 탐색 한 다음 Eclipse가 요청할 때 소스를 첨부하십시오.
누 메논

4

Jad는 엉뚱하고 더 이상 유지되지 않습니다. UI가 매끄럽고 새로운 언어 기능을 지원하는 "Java Decompiler" 로 전환했습니다 .

그러나 내가 사용한 모든 디 컴파일러는 코드가 실행되어 성공적으로 디 컴파일되지 않습니다. 이를 위해 표준 JDK 도구로 생성 된 디스 어셈블 된 Java 바이트 코드를 이해하는 데 도움이됩니다. javap에 .


3

jar 파일은 단지 zip 파일이므로 압축을 풀면 (원하는 압축 해제 유틸리티를 사용하여) 모든 파일을 내부에 넣습니다.

클래스 파일을 살펴보고 메소드를 보려면 해당 도구가 필요합니다. PhiLho가 언급했듯이 Eclipse는 기본적으로 그렇게 할 수 있으며 대부분의 Java IDE가 가능하다고 생각합니다.


3

이클립스 3.4에서

  1. 해당 jar 파일을 Java 프로젝트로 끌어 오십시오. jar 파일의 사본이 나타납니다.
  2. jar 파일을 마우스 오른쪽 단추로 클릭하고 "빌드 경로"-> "빌드 경로에 추가"를 선택하십시오.
  3. Jar 파일은 "참조 라이브러리"노드로 이동하여 프로젝트 탐색기 창에서 열고 탐색 할 수 있습니다.

소스 코드를 보는 것도 문제가되면 새로운 질문을여십시오.

Jar 파일 수준 (zip 파일)의 탐색에는 매우 잘 작동하는 7zip을 사용하며 문제 해결에 큰 항목을보고 편집 할 수 있습니다.


3

이를 수행하는 한 가지 방법은 "패키지 탐색기"에서 Perspective를 여는 것입니다. 이렇게하면 클래스 세부 정보가있는 항아리의 구조를 볼 수 있습니다. 이를 위해 패키지 탐색기를 사용하여 프로젝트의 라이브러리 폴더를 확인하십시오.

창 >>보기 표시 >> 기타 >> 자바 >> 패키지 탐색기

또 다른 방법은 JarPlug를 일식 플러그인으로 사용할 수 있습니다. 이것은 일식 / 스프링 소스에서 작동합니다

http://jar-plug.sourceforge.net/


3

Windows에 있고 powershell을 사용하고 있고 jar 파일을 찾고 있다면 다음을 수행 할 수 있습니다.

jar -tf .\[JAR_NAME] | where {$_ -match "[FILENAME]"}

2

요즘에는 대부분의 압축 해제 유틸리티로 파일을 열 수 있으며 소스를 보려면 DJ Java Decompiler 와 같은 것을 얻으십시오 .



2

내 요구 사항은 실제로 항아리를 추출하지 않고 항아리 안의 파일 (예 : 속성 파일)의 내용을 보는 것이 었습니다. 누군가 나처럼이 스레드에 도달하면이 명령을 시도하십시오-

unzip -p myjar.jar myfile.txt

이것은 나를 위해 잘 작동했습니다!



1

JAR 브라우저를 선호합니다. 여러 JAR을 탐색하고 여러 JAR에서 특정 클래스를 동시에 검색 할 수있는 간단한 인터페이스가 있습니다.


1

이클립스 3.4 JDT

먼저 식으로 드래그해야하기 때문에 가장 빠른 방법은 아닙니다. 그러나 디 컴파일이 활성화 된 경우에도 전체 Java 클래스 탐색이 가능합니다.


1

Windows의 기본 동작을 "WinZip으로 열기"로 설정했습니다. 이를 통해 JAR을 아카이브로 쉽게 관리 할 수 ​​있습니다. 파일을 수동으로 추가 / 제거 할 수도 있습니다.


1

Jar Explorer 는 충분합니다.
JD, Procyon 및 Fernflower의 세 가지 디 컴파일러 유형을 지원합니다.
모든 Java 아카이브에서 파일 및 중복을 검색 할 수 있습니다.
또한 사용자는 D & D 파일로 jar을 수정하고 비 클래스 파일을 편집 할 수 있습니다. 여기에 이미지 설명을 입력하십시오 여기에 이미지 설명을 입력하십시오


도구 나 라이브러리를 답으로 게시하지 마십시오. 적어도 답변 자체에서 문제해결하는 방법을 보여 주십시오 .
Das_Geek


0

IDE도이를 지원해야합니다. 내 IDE (SlickeEdit)는 "태그 라이브러리"라고 부릅니다. jar 파일에 대한 태그 라이브러리를 추가하기 만하면 클래스와 메소드를 계층 적으로 찾아 볼 수 있습니다.






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