jar 명령의 용법 상세 설명
JAR 패키지는 자바에서 특유한 압축 문서인데, 사실 여러분은 그것을 이해할 수 있습니다.zip 가방.물론 차이가 있습니다. JAR 가방에는 META-INF\MANIFEST가 있습니다.MF 파일, JAR 패키지를 찾으면 자동으로 생성됩니다.
JAR 패키지는 JDK 설치 디렉토리\bin\jar입니다.exe 명령은 JDK를 설치하고 path 경로를 설정하면jar를 정상적으로 사용할 수 있습니다.exe 명령은 lib\tool을 사용합니다.jar 도구 패키지의 클래스입니다.이런 세부 사항은 상관할 필요가 없다.
어떻게 사용하는지 봅시다.
하나.jar 명령 매개변수:
jar 명령 형식:jar {c t x uf}[v m e 0 M i][-C 디렉터리] 파일 이름...
그중 {ctxu} 이 네 개의 매개 변수는 반드시 하나를 선택해야 합니다.[v f m e 0 M i] 는 선택 가능한 매개 변수이며 파일 이름도 필수입니다.
-cjar 패키지 만들기
-tjar의 내용 목록 보이기
-x 스트레스 해소jar 패키지
-u 파일을jar 패키지에 추가
-fjar 패키지의 파일 이름 지정
-v 상세한 보고서를 생성하여 표준 장치로 출력
-m 지정manifest.mf 파일.(manifest.mf 파일에서jar 패키지와 그 내용을 설정할 수 있습니다)
- 0jar 패키지가 생겼을 때 그 내용을 압축 처리하지 않음
- 모든 파일의 목록 파일이 생성되지 않습니다(Manifest.mf).이 매개 변수와 무시-m 매개 변수의 설정
- i 지정한jar 파일에 색인 파일 만들기
-C는 상응하는 디렉터리로 돌아가서jar명령을 실행하는 것을 나타낸다. cd를 그 디렉터리로 옮기고 -C를 사용하지 않고jar명령을 실행하는 것과 같다
2.jar 사용 사례:
(1)jar 패키지 만들기
jar cf hello.jar hello
테스트 디렉터리를 이용하여hello를 생성합니다.jar 가방, 예를 들어hello.jar가 존재하면 덮어쓰기(2) 패키지 생성 및 표시
jar cvf hello.jar hello
hello 디렉터리를 이용하여 hello를 만듭니다.jar 패키지, 생성 과정 보이기예:
E:\>jar cvf hello.jar hello
목록 표시하기 (manifest)증가: hello/(읽기 = 0)(쓰기 = 0)(0% 저장)
증가: hello/TestServlet2.class(읽기 = 1497)(쓰기 = 818)(45% 압축)
증가: hello/HelloServlet.class(읽기 = 1344)(쓰기 = 736)(45% 압축)
증가: hello/TestServlet1.class(읽기 = 2037)(쓰기 = 1118)(45% 압축)
(3) jar 패키지를 표시합니다.
jar tvf hello.jar hello 보기.jar 패키지 내용
지정한jar 패키지는 실제 존재해야 합니다. 그렇지 않으면 FileNoutFoundException이 발생합니다.
(4) 압축 해제 jar 패키지:
jar xvf hello.jar
스트레스 풀기.jar에서 현재 디렉터리로(5)jar에 파일 추가:
jar uf hello.jar HelloWorld.java
HelloWorld.java를 hello에 추가합니다.jar 패키지(6) 압축되지 않은 내용jar 패키지를 만듭니다.
jar cvf0 hello.jar *.class
현재 디렉터리에 있는 모든 것을 이용합니다.class 파일은 압축되지 않은jar 패키지를 생성합니다(7) 테이프 manifest를 만듭니다.mf 파일의 jar 패키지:
jar cvfm hello.jar manifest.mf hello
만든jar 패키지에는 META-INF 디렉터리가 하나 더 있고, META-INF 끝에 manifest가 하나 더 있습니다.mf 파일, manifest까지.mf의 역할은 뒤에서 언급할 것이다.(8) manifest를 무시합니다.mf 파일:
jar cvfM hello.jar hello
생성된jar 패키지에는 META-INF 디렉토리 및 manifest가 포함되지 않습니다.mf 파일(9) 더하기 - C 적용:
jar cvfm hello.jar mymanifest.mf -C hello/
hello 디렉터리로 전환하고jar 명령을 실행하는 것을 나타냅니다.(10) - i는 jar 파일에 대한 인덱스 목록을 생성합니다.
jar 패키지의 내용이 매우 좋을 때, 색인 파일을 만들어서 보기에 매우 편리해 보일 수 있습니다.
jar i hello.jar
이 명령을 실행하면 hello에 있습니다.jar 패키지의 META-INF 폴더 아래에 INDEX라는 이름이 생성됩니다.LIST의 인덱스 파일입니다. 목록을 생성합니다. 맨 위는jar 패키지 이름입니다.(11) 압축 해제 목록 내보내기:
jar tvf hello.jar >hello.txt 만약에 압축을 풀기 위한 상세한 과정을 보고 싶다면, 이jar 패키지는 매우 커서, 화면 정보가 깜빡거릴 것입니다. 이때 목록을 파일에 출력해서 천천히 감상할 수 있습니다!
(12)jar -cvf hello.jar hello/*
예를 들어 디렉토리 구조는 다음과 같습니다.
hello
|---com
|---org
com 디렉터리와org 디렉터리만 포장하려고 했는데, 이때jar 명령은hello목양과도 함께 포장됩니다.이 점은 모두가 주의해야 한다.jar 명령으로 생성된 압축 파일은 뒤에 나온 디렉터리를 포함합니다.우리는 Hello 디렉터리에 들어가서jar 명령을 실행해야 합니다.
주의:manifest.mf 이 파일 이름은 사용자가 지정할 수 있으나jar 명령은 Manifest만 인식합니다.mf, 사용자가 지정한 파일 이름을 상응하는 변환을 할 것입니다. 사용자가 걱정할 필요가 없습니다.
셋.Manifest.mf 파일 작성 규칙:
manifest.mf의 작성은 반드시 세부 사항을 주의해야 한다. 이것은 매우 까다롭다. 나도 여기에 적지 않은 어려움을 겪었다. 누가 그것을 이렇게 쩨쩨하게 만들었느냐. 어쩔 수 없기 때문에 전문적으로 모두에게 열거해 주었다.
(1) 빈 줄과 빈 칸이 있을 수 없는 곳
첫 번째 줄은 빈 줄이 될 수 없습니다(첫 번째 줄의 줄 앞에는 빈 줄이 있을 수 없습니다), 줄과 줄 사이에는 빈 줄이 있을 수 없고, 두 번째 줄의 끝에 빈 칸이 있을 수 없습니다
(2) 꼭 빈 곳이 있어야 한다
마지막 줄은 빈 줄.
(3) 빈 칸이 있는 곳
키:value는 세미콜론 뒤에 공백을 써야 합니다.
사.jar 패키지의 클래스를 어떻게 사용합니까
그래도 작은 예를 하나 써라, 이렇게 직관적으로!
public final class Person
{
public static int age()
{
return 30;
}
}
-> javac Person.java
->jar cvf person.jar Person.class
위의 파일을 jar 패키지로 만들기클래스를 하나 더 작성하여 호출합니다.
public class MyAge
{
public static void getAge()
{
System.out.println(Person.age());
}
}
->javac MyAge.java
->java -classpath person.jar MyAge
관심 있는 독자는 이 프로그램을 디버깅할 수 있다
5.실행 가능한jar 패키지 만들기
때때로 스스로 프로그램을 작성합니다. 클래스가 무더기로 쌓여 있고, 시간이 지나면 그것도 메인 클래스인 줄 모르고 그림이나 다른 파일이 무더기로 쌓여 있을 수도 있고, 보기에도 지저분할 수도 있습니다. 이 때 실행 가능한jar 패키지로 만드는 것을 고려할 수 있습니다.
(1) manifest를 편집합니다.다음 줄에 mf 파일 추가
Main-Class: MyApplet
참고: Main-Class의 크기, 사칭 후 공백, My Applet 후 반드시 리턴을 입력하고 저장합니다.(2) 포장
jar cvfm FirstApplet.jar manifest.mf MyApplet.class
주의:manifest.mf는 Mani-Class: MyApplet 파일을 저장하는 class 경로(예: hello. Hello) 또는 파일 이름(applet)으로 지정합니다.(3)jar 사용 가능
java -jar FirstApplet.jar
에서도 사용할 수 있습니다.
<applet code=MyApplet archive=FirstApplet.jar width=200 height=100>
</applet>
주의: 클래스는 제시되지 않았습니다. 여러분 마음대로 하나 쓰면 됩니다. 클래스 이름은 스스로 정하고 해당하는 변경은 할 수 있습니다.여섯.자신의 클래스를 확장하다
JDK의 설치 디렉터리\jre\lib\ext 디렉터리에서 SUN은 여러분에게 자신의 클래스를 확장하는 데 편리함을 제공합니다. 여러분은 자신의 클래스 파일을 만들 수 있습니다.이 디렉터리에 패키지를 놓으면 ExtClassLoader 클래스가 불러옵니다. ExtClassLoader 클래스는 AppClassLoader 클래스 마운트의 부모 마운트입니다. AppClassLoader는 주로 CLASSPATH 경로에 있는 파일을 불러오는 것을 맡고 자바에서 사용하는 것은 부모 마운트를 의뢰하는 메커니즘이기 때문에 이 디렉터리에 저장된 jar의 클래스 파일은 아무런 설정도 하지 않고 클래스 마운트가 정상적인 마운트를 찾을 수 있습니다.편하지, 허..
하면, 만약, 만약...jar는 applet 작은 응용 프로그램에 보여지는데, jar 패키지로 전화하기 전에 manifest에서 볼 수 있습니다.다음 두 줄을 넣으세요.
Class-Path: FirstApplet.jar
Class-path: SecondApplet.jar
Main-Class: MyApplet
주의: Class-path는 여러 가지를 설정할 수 있으며,jar 가방 이름을 직접 쓰면 됩니다.Main-Class는 주로jar에 여러 개가 있습니다.class 클래스 파일을 만들 때 자바는 그것이 메인 클래스인지 모르기 때문에 지정해야 합니다. 만약에 자바 패키지에 하나의 클래스만 있으면 당연히 지정하지 않을 수 있습니다.Java 호출 클래스의 순서:java\lib\ext의 클래스--->Manifest.mf에서 지정한 클래스 --> 현재 디렉토리의 클래스 --> set CLASSPATH에서 지정한 클래스입니다.
일곱URL 네트워크의jar 패키지 호출
(1)jar 패키지의 URL 생성
URL u=new URL("jar:"+"FirstAppplet.jar"+!/");
(2)jarURLConnection 객체 만들기
JarURLConnection juc=(JarURLConnection)u.openConnection();
(3)jar 패키지의 메인 클래스 이름을 되돌려줍니다.
Attributes attr=juc.getMainAttributes();
String name=attr.getValue("Mani-Class");
당신의jar가방 중의 manifest를 반드시 확보해야 합니다.mf에 Mani-Class 속성이 올바르게 설정되어 있습니다. 규칙에 주의해야 한다는 것을 다시 한 번 강조합니다.
(4) 주어진 클래스 이름에 따라 클래스 대상 만들기
Class c=Class.forName(name);
(5) 클래스 객체에 따라 main 메서드를 호출합니다.
Method cm=c.getMethod("main",new Class[]{String.class});
cm.invoke(null,new Object[]{});
힌트: 위에서 Reflection 반사 메커니즘에 대한 지식을 사용했습니다. 여러분이 다중 반사 메커니즘에 관심이 있다면java를 보실 수 있습니다.lang.reflect 패키지의 관련 내용입니다.
여덟JAR 명령 사용 방법:
(1)jar 압축 ZIP 파일 만들기
jar cvfM TestZIP.jar test
M 매개변수를 추가하여 META-INF 관련 컨텐트를 생성하지 않도록 합니다.그런 다음 TestZIP.jar에서 TestZIP로 변경되었습니다.zip이면 돼요. 간단하지 않아요?
(2) WinRAR을 사용하여 압축을 풀다.jar 파일
위에서 우리가 이미 말했듯이 JAR 파일은 특수한 압축 파일이기 때문에 당연히 우리가 자주 사용하는 압축 해제 도구로 풀 수 있다. 어떻게 풀 것인지는 내가 말할 필요가 없다.
(3) WinRAR로 생성합니다.jar 파일
우리는 이미 JAR 패키지와 ZIP 패키지의 주요 차이점은 JAR 패키지에 META-INF의 디렉터리가 하나 더 있고 META-INF 디렉터리 아래에 manifest가 하나 있다고 말했다.mf 파일, 우리는 관련 디렉터리를 만들어서 압축하기만 하면 됩니다.
디렉토리의 구조는 다음과 같습니다.
TestJar
|--META-INF
|--manifest.mf
|--관련 클래스 파일
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Android Studio를 사용하여 실행 가능한 jar 만들기Android Studio를 사용하여 실행 가능한 항아리를 만드는 방법을 설명합니다. OS 버전은 다음과 같습니다. Android Studio 버전은 다음과 같습니다. 자바 버전은 다음과 같습니다. 다음 절차에 따라...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.