jar 파일에서 클래스, 메소드, 속성 등을 보는 가장 쉬운 방법은 무엇입니까? 나는 매우 유용한에 해당 뭔가를 찾고 있어요 루츠 Roeder .NET 반사판 - 자바
jar 파일에서 클래스, 메소드, 속성 등을 보는 가장 쉬운 방법은 무엇입니까? 나는 매우 유용한에 해당 뭔가를 찾고 있어요 루츠 Roeder .NET 반사판 - 자바
답변:
JDK를 사용하면 jar -tf
jar 파일이 나열됩니다. javap
특정 클래스 파일에서 자세한 내용을 제공합니다.
tar
옵션이 필수 이므로 하이픈이 필요하지 않습니다 .
C:\Program Files\Java\jdk<version>\bin
사용하기 전에 시스템 또는 사용자 PATH 환경 변수에 추가해야 할 수도 있습니다 jar
. (여기서 <version>은 jdk 버전 빌드 번호입니다. 체크인하십시오 C:\Program Files\Java
)
jar tf test.jar | grep MANIFEST
나는 보통 7-Zip으로 그것들을 연다. 그것은 적어도 패키지와 클래스와 리소스를 볼 수있게한다.
메소드 또는 필드를 볼 필요가 있다면 Jad를 사용하지만 물론 JavaDoc에 의존하는 것이 좋습니다 ...
이제 SO 어딘가에 어떤 Eclipse 파일이 클래스가있는 jar 파일인지 찾기 위해 Eclipse 플러그인이 언급되었습니다. 아마도 더 많은 작업을 수행 할 수 있습니다 (예 : 요청한 것).
[편집] SO 스레드 참조. 묻는 것은 아니지만 어떻게 든 관련이 있으므로 유용합니다. Java : 클래스 이름이 주어진 jar 파일을 어떻게 알 수 있습니까?
내가 개인적으로 사용하는 것은 JD-GUI입니다. 무료 '디 컴파일러'로, 클래스의 소스 코드, 클래스 및 객체를 볼 수있을뿐만 아니라 왼쪽의 트리 메뉴에서 파일 구조를 볼 수 있습니다. 그러나 클래스를 직접 수정할 수는 없습니다.
JD-GUI 웹 사이트 : http://jd.benow.ca/
누군가 이것을 이미 모르는 경우 JAR 파일은 프로그램의 클래스, 리소스 등 및 일부 메타 데이터를 포함하는 ZIP 파일 일뿐입니다. 하나를 추출하여 구성 방법을 확인할 수 있습니다.
따라서 unzip
기억하고 사용하기 쉬운 명령을 사용하고 있습니다.
unzip -l <jar-file-name>.jar
당신이 이름으로 jar 파일이있을 경우 예를 들어, test.jar
다음 unzip -l test.jar
jar 파일의 내용을 모두 나열합니다.
다른 모든 답변은 훌륭하지만, 그러나 대부분에, 당신은 같은 일부 소프트웨어를 사용하는 것 7 zip
또는 JDK
이 당신을 필요로하지 않는 동안 W /이 큰의의를 가지고 다른 일식 도구 또는 그것은 리눅스에서 기본적으로 제공 Mac은 매우 가볍고 사용하기 편리합니다 .
을 사용할 수도 있습니다 zipinfo <your jar file>
. OS가이를 지원하는 경우
IDE에서 프로젝트에 jar를 추가하면 일반적으로 메소드와 필드 이름을 볼 수 있지만 자세한 구현은 볼 수 없습니다. NetBeans, Eclipse, IntelliJ 등이 가능합니다. IDE 내에서 jar 구조를 직접 찾아 볼 수 있습니다.
내용을 보는 것과 같은 것을 위해 다음을 사용할 수 있습니다.
jar tvf jarfile.jar
소스 코드에 액세스하려면 JAD 또는 프론트 엔드 중 하나 또는 다른 디 컴파일러와 같은 디 컴파일러를 사용합니다. 코드가 난독 화되면 ...
Tom Hawtin 답변을 확장하면 목록을 파이프하여 원하는 클래스 또는 파일을 필터링 할 수 있습니다.
jar tf my-fat-jar-file.jar | grep filename
이것은 bash / zsh 및 이와 유사한 것 또는 emacs의 eshell에서 작동해야합니다.
추가 정보 : https://docs.oracle.com/javase/tutorial/deployment/jar/view.html
WinRar를 사용하십시오 . 폴더 구조가 그대로 열립니다. 경로를 유지하면서 아카이브 내 편집도 가능합니다.
결국 JAR 파일은 ZIP 아카이브입니다.
올바르게 이해하면 클래스뿐만 아니라 메서드, 속성 등도보고 싶습니다. 내가 할 수있는 유일한 도구는 Eclipse입니다. 프로젝트 클래스 경로에 항아리를 추가하면 일반적인 패키지 탐색기를 사용하여 메소드와 속성으로 클래스를 탐색 할 수 있습니다.
어쨌든, 이것은 좋은 독립형 Java 도구에 대한 좋은 아이디어입니다
Jad는 엉뚱하고 더 이상 유지되지 않습니다. UI가 매끄럽고 새로운 언어 기능을 지원하는 "Java Decompiler" 로 전환했습니다 .
그러나 내가 사용한 모든 디 컴파일러는 코드가 실행되어 성공적으로 디 컴파일되지 않습니다. 이를 위해 표준 JDK 도구로 생성 된 디스 어셈블 된 Java 바이트 코드를 이해하는 데 도움이됩니다. javap에 .
이클립스 3.4에서
소스 코드를 보는 것도 문제가되면 새로운 질문을여십시오.
Jar 파일 수준 (zip 파일)의 탐색에는 매우 잘 작동하는 7zip을 사용하며 문제 해결에 큰 항목을보고 편집 할 수 있습니다.
이를 수행하는 한 가지 방법은 "패키지 탐색기"에서 Perspective를 여는 것입니다. 이렇게하면 클래스 세부 정보가있는 항아리의 구조를 볼 수 있습니다. 이를 위해 패키지 탐색기를 사용하여 프로젝트의 라이브러리 폴더를 확인하십시오.
창 >>보기 표시 >> 기타 >> 자바 >> 패키지 탐색기
또 다른 방법은 JarPlug를 일식 플러그인으로 사용할 수 있습니다. 이것은 일식 / 스프링 소스에서 작동합니다
요즘에는 대부분의 압축 해제 유틸리티로 파일을 열 수 있으며 소스를 보려면 DJ Java Decompiler 와 같은 것을 얻으십시오 .
도구 는 Eclipse 용 무료 JAR 뷰어 플러그인을 제공합니다.
Eclipse 업데이트 사이트를 추가하고 뷰어 만 설치하십시오.
내 요구 사항은 실제로 항아리를 추출하지 않고 항아리 안의 파일 (예 : 속성 파일)의 내용을 보는 것이 었습니다. 누군가 나처럼이 스레드에 도달하면이 명령을 시도하십시오-
unzip -p myjar.jar myfile.txt
이것은 나를 위해 잘 작동했습니다!
Java Decomplier는 여기에서 다운로드 할 수있는 가장 좋은 옵션이라고 생각합니다. http://jd.benow.ca/
이 Jar Explorer 는 충분합니다.
JD, Procyon 및 Fernflower의 세 가지 디 컴파일러 유형을 지원합니다.
모든 Java 아카이브에서 파일 및 중복을 검색 할 수 있습니다.
또한 사용자는 D & D 파일로 jar을 수정하고 비 클래스 파일을 편집 할 수 있습니다.
Mac에는 Jarzilla가 있습니다.
JarExplorer 또는 JarVisualizer를 사용 합니다.
JarNavigator 를 사용하여 jar 파일의 내용을보고 검색 할 수 있습니다.
또한 Luyten 을 사용할 수 있습니다 -오픈 소스 Java 디 컴파일러 Gui