Java 애플리케이션이 실행 중일 때 사용된 클래스의 바이트를 메모리에 로드해야 합니다. 따라서 바이트코드 파일의 위치에 대한 특정 요구사항이 있으며 일반적으로 다음 네 가지 상황으로 나뉩니다.
1. 현재 애플리케이션이 위치한 디렉터리에서 패키지 이름 없이 클래스를 사용합니다.
현재 애플리케이션이 위치한 디렉터리에 패키지명이 없는 클래스는 바로 로드하여 사용할 수 있다.
2. Java 런타임 환경에서 클래스 라이브러리의 클래스를 사용합니다.
Java 런타임 환경에서 제공하는 클래스 라이브러리의 클래스는 모두 패키지 이름을 가지며, 애플리케이션은 import 문을 사용하여 해당 패키지에 클래스를 도입해야 합니다.
3. 애플리케이션 현재 디렉터리의 하위 디렉터리에 있는 클래스를 사용합니다.
애플리케이션의 현재 디렉터리 아래에 있는 하위 디렉터리는 사용자 정의 패키지의 패키지 이름으로 사용될 수 있습니다. 이 패키지 이름을 가진 클래스는 이러한 하위 디렉터리에 저장되어야 합니다. 애플리케이션은 import 문을 사용하여 사용자에게 클래스를 소개할 수 있습니다. -정의된 패키지.
4. Java 런타임 환경 확장에서 클래스를 사용합니다.
jar.exe 명령을 사용하여 일부 클래스의 바이트코드 파일을 jar 파일로 압축한 다음 해당 jar 파일을 Java 런타임 환경의 확장에 저장할 수 있습니다. 즉, jar 파일을 jrelibext에 저장할 수 있습니다. JDK 설치 디렉토리. Java 애플리케이션이 이 jar 파일의 클래스를 사용하여 객체를 생성할 수 있도록 합니다.
패키지 이름이 있는 클래스
다음 TestOne 및 TestTwo 클래스의 패키지 이름이 moon.star라고 가정합니다.
TestOne.java
packagemoon.star;//패키지 문 publicclassTestOne{publicvoidfTestOne(){System.out.println(IamamethodInTestOneclass);}}
TestTwo.java
packagemoon.star;//패키지 문 publicclassTestTwo{publicvoidfTestTwo(){System.out.println(IamamethodInTestTwoclass);}}
TestOne.java와 TestTwo.java를 C:1000moonstar 디렉터리에 저장한 후 이 디렉터리에 들어가 두 소스 파일을 각각 컴파일합니다.
이제 C:1000moonstar 디렉터리에 있는 TestOne.class와 TestTwo.class를 jar 파일인 Jerry.jar로 압축합니다.
먼저 매니페스트 파일인 hello.mf(Manifestfiles)를 작성합니다.
안녕하세요.mf
매니페스트 버전: 1.0클래스:moon.star.TestOnemoon.star.TestTwoCreated-By:1.6
hello.mf를 C:1000 디렉터리에 저장합니다. jar 명령을 사용하여 jar 파일을 생성하려면 먼저 C:1000 디렉터리에 들어가야 합니다. 즉, 패키지 이름 위에 디렉터리를 입력한 다음 jar 명령을 사용하여 Jerry.jar이라는 파일을 생성합니다.
C:1000>jarcfmJerry.jarhello.mfmoonstarTestOne.classmoonstarTestTwo.class
C:1000moonstar에 2개의 바이트코드 파일(TestOne.class 및 TestTwo.class)만 있는 경우 jar 명령을 사용할 수도 있습니다.
C:1000>jarcfmJerry.jarhello.mfmoonstar*.class
마지막으로 C:1000 디렉터리의 jar 명령으로 생성된 Jerry.jar 파일을 Java 런타임 환경의 확장에 복사합니다. 즉, JDK 설치의 jrelibext 폴더에 Jerry.jar 파일을 저장합니다. 예배 규칙서.
패키지 이름이 없는 클래스
TestOne 및 TestTwo 클래스에 패키지 이름이 없으면 TestOne.java 및 TestTwo.java를 C:1000에 저장하고 바이트코드 파일을 컴파일하면 됩니다. 매니페스트 파일을 작성한 후 C:1000에 저장하고 C:1000 디렉터리에 들어가서 jar 명령을 사용합니다.
C:1000>jarcfmJerry.jarhello.mfTestOne.classTestTwo.class
C:1000에 TestOne.class 및 TestTwo.class라는 두 개의 바이트코드 파일만 있는 경우 jar 명령을 사용할 수도 있습니다.
C:1000>jarcfmJerry.jarhello.mf*.class
마지막으로 C:1000 디렉터리에 있는 jar 명령으로 생성된 Jerry.jar 파일을 JDK 설치 디렉터리의 jrelibext 폴더에 복사하면 애플리케이션에서 Jerry.jar 파일에 있는 TestOne.class 및 TestTwo를 직접 사용할 수 있습니다. . .수업.