명령 줄로 .jar 파일 추출


115

.jar 파일에서 파일을 추출하려고합니다. 명령 줄을 사용하여 어떻게합니까?

Windows 7을 실행하고 있습니다.

답변:


147

에서 워드 프로세서 :

jar 파일에서 파일을 추출하려면 다음과 같이을 사용하십시오 x.

C:\Java> jar xf myFile.jar

jar 파일에서 특정 파일 만 추출하려면 파일 이름을 제공하십시오.

C:\Java> jar xf myFile.jar foo bar

jar아마도 C:\Java당신을위한 것이 아닌 폴더 는 내 Windows 파티션에서 다음과 같습니다.

C:\Program Files (x86)\Java\jdk[some_version_here]\bin

의 위치 jar가 경로 환경 변수에 있지 않는 한 전체 경로를 지정하고 폴더 내에서 프로그램을 실행해야합니다.

편집 : 여기에 특히 JAR 추출에 초점을 맞춘 또 다른 기사가 있습니다. http://docs.oracle.com/javase/tutorial/deployment/jar/unpack.html


좋아, jar xf ... 명령을 수행하면 'jar'가 내부 또는 외부 명령, 작동 가능한 프로그램 또는 배치 파일로 인식되지 않습니다.라는 오류가 발생합니다. 이 문제를 어떻게 해결합니까?
Bobby C

1
@BobbyC : 전체 경로를 지정 jar.exe하거나 폴더 내에서 실행합니다.
AusCBloke 2011

감사합니다. 이제 모든 것이 괜찮습니다!
Bobby C

2
java.io.IOException : META-INF : sun.tools.jar.Main.extract (Main.java:852)의 sun.tools.jar.Main.extractFile (Main.java:928)에 sun.tools.jar.Main.extract (Main.java:852)에 디렉토리를 만들 수 없습니다. .tools.jar.Main.run (Main.java:242) at sun.tools.jar.Main.main (Main.java:1149)이 오류를 제거하는 방법은 무엇입니까?
AnilPatel

1
@AnilPatel 관리자 권한으로 명령 프롬프트를 실행하여이 문제를 해결했습니다 ( "관리자 권한으로 실행"을 마우스 오른쪽 버튼으로 클릭)
jessieloo

34

jar 파일은 Zip 파일이며 모든 Zip 도구 (예 : 7-Zip)는 jar 내부를 볼 수 있습니다.


6
여기를보세요. 이것이 여러분 모두에게 필요한 것입니다.
알리

28

Ubuntu에서 :

unzip file.jar -d dir_name_where_extracting


1
jar명령 이없는 시스템에 유용합니다 ! CentOS 5.7에서 문제없이 작동
djthoms

8

다음 명령을 사용할 수 있습니다. jar xf rt.jar

여기서는 X추출 f을 나타내며 파일을 추출 할 JAR 파일이 stdin을 통하지 않고 명령 줄에 지정됨을 나타내는 옵션입니다.


2

Java에는 zip 파일을위한 클래스가 있고 Jar 파일을위한 클래스가 있습니다.

java.util.jar.JarOutputStream
java.util.jar.JarInputStream

system.in으로 설정된 스캐너를 사용하여 콘솔의 명령으로 할 수있는 것들을 사용합니다.

Scanner console = new Scanner(System.in);
String input = console.nextLine();

그런 다음 모든 구성 요소를 가져 와서 파일로 작성하십시오.

JarEntry JE = null;
while((JE = getNextJarEntry()) != null)
{
    //do stuff with JE
}

대신 java.util.zip.ZipInputStream을 사용할 수도 있습니다. JAR 파일이 ZIP 파일과 동일한 형식임을 알면 ZipInputStream이 Jar 파일을 처리 할 수 ​​있습니다. 실제로 JarInputStream은 실제로 ZipInputStream을 확장합니다.

대안은 getNextJarEntry 대신 getNextEntry를 사용하는 것입니다.


2

jar xf myFile.jar
변화의 myFile는 파일의 이름을 지정합니다
이 .jar 파일의 현재 폴더에있는 내용을 저장합니다
수행해야합니다 :


0

Me.Jar라는 파일이 주어지면 :

  1. cmd로 이동
  2. Enter를 누르십시오
  3. Java jar명령 사용-jdk1.8.0_31을 사용하고 있으므로 다음을 입력합니다.

    C : \ Program Files (x86) \ Java \ jdk1.8.0_31 \ bin \ jar xf me.jar

파일을 폴더 bin에 추출해야합니다. 내 경우에는 Me.jar에 Valentine.class가 포함되어있는 .class 파일을 찾으십시오.

입력 java Valentine하고 Enter 키를 누르면 메시지 파일이 열립니다.


-3

jar를 지정된 폴더로 추출하려면 명령 프롬프트를 통해이 명령을 사용하십시오.

C:\Java> jar xf myFile.jar -C "C:\tempfolder"

7
이것은 작동하지 않습니다. -Cjar 파일을 만들 때만 사용할 수 있습니다.
unwichtich

@unwichtich이 경우 대상 폴더를 지정하는 방법이 있습니까?
라인

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