단일 프레임 을 가진 Java 응용 프로그램 (프로젝트가있는 응용 프로그램이 아니라 프로젝트 내의 응용 프로그램, .java )을 사용하여 간단한 프로그램을 작성했습니다 . 두 파일 모두 .java 이므로 JAR에 필요한 매니페스트를 작성할 수 없습니다 .
MyApp.java는 , 패키지와 클래스처럼 수입 한 후 공용 클래스를 시작 MyApp
하고 주요 기능을 가지고 있지만, 여전히 된 .java 파일입니다! 도움이된다면 JDeveloper 11g로 작성하고 있습니다.
이 파일에서 JAR을 만드는 방법에 대한 아이디어가 있습니까?
답변
명령 프롬프트를 엽니 다.
.java 파일이있는 디렉토리로 이동하십시오.
디렉터리 빌드 만들기
명령 줄에서 Java 컴파일 실행
javac -d ./build *.java
오류가 없으면 빌드 디렉토리에 클래스 트리가 있어야합니다.
빌드 디렉토리로 이동하고
jar cvf YourJar.jar *
매니페스트 검사 jar 명령 줄 스위치 추가
답변
명령 줄로 간단히 :
javac MyApp.java
jar -cf myJar.jar MyApp.class
확실히 IDE는 명령 줄 터미널 사용을 피합니다.
답변
Ok 이것이 내가 찾고 싶었던 해결책입니다. 대신 여기에 작성합니다.
먼저 .java 파일에 대해 정의 된 패키지에 해당하는 디렉토리 구조를 만듭니다. my.super.application이면 “my”디렉토리를 만들고 그 안에 “super”디렉토리를 만들고 그 안에 .java 파일 “App.java”를 만듭니다.
그런 다음 명령 줄에서 :
javac -cp /path/to/lib1.jar:/path/to/lib2.jar path/to/my/super/App.java
위의 내용은 여러 라이브러리를 포함합니다. 만약 윈도우에서 “,”를 사용하여 여러 파일을 분리하지 않으면 GNU / Linux에서 “:”를 사용하여 jar 파일을 생성합니다.
jar -cvfe App.jar App my/app/
위는 App을 메인 클래스로 나타내는 해당 Manifest를 사용하여 애플리케이션을 생성합니다.
java 또는 jar 명령 줄 매개 변수를 사용하여 jar 파일에 필수 라이브러리를 포함 할 수 없습니다.
대신 다음을 수행 할 수 있습니다.
- jar 파일의 루트 폴더에 라이브러리를 수동으로 추출하십시오.
- Netbeans와 같은 IDE를 사용하고 nbproject / build-impl.xml의 post-jar 섹션에 규칙을 삽입하여 jar 내부의 라이브러리를 추출하십시오. 아래를 참조하십시오.
<target name="-post-jar">
<!-- Empty placeholder for easier customization. -->
<!-- You can override this target in the ../build.xml file. -->
<jar jarfile="${dist.jar}" update="true">
<zipfileset src="${dist.jar}" includes="**/*.class" />
<zipfileset src="${file.reference.iText-1.0.8.jar}" includes="**/*"/>
<zipfileset src="${file.reference.itextpdf-3.2.1.jar}" includes="**/*"/>
</jar>
</target>
Netbeans IDE에 라이브러리를 추가 한 후 file.reference 이름은 project.properties 파일에서 찾을 수 있습니다.
답변
종종 다음과 같이 매니페스트를 지정하고 싶을 것입니다.
jar -cvfm myJar.jar myManifest.txt myApp.class
“상세한 jarFilename manifestFilename 만들기”와 포함하려는 파일이 뒤 따릅니다. Verbose는 수행중인 작업에 대한 메시지를 인쇄하는 것을 의미합니다.
제공하는 매니페스트 파일의 이름은 무엇이든 될 수 있으며 jar
자동으로 이름을 바꾸고 jar 파일 내의 올바른 디렉토리에 넣습니다.
답변
이것은 터미널없이 IDE에서 직접 수행 할 수 있습니다. 예를 들어, Netbeans.
- 패키지로 별도의 프로젝트를 생성합니다 (프로젝트 생성-Java-Java 클래스 라이브러리).
- 거기에 .java 클래스를 넣으십시오.
- 이 프로젝트를 빌드하십시오.
- 프로젝트 폴더로 이동하여 빌드 및 dist 폴더를 찾으십시오.
- dist 폴더에서 .jar 파일을 찾으십시오.
- 다른 프로젝트를 가져 와서이 .jar 파일을 프로젝트 라이브러리에 추가하십시오.
- 가져 오기가 자동으로 수행되는 경우 이제이 라이브러리의 클래스와 해당 메서드를 코드에서 직접 참조 할 수 있습니다.
답변
여기에 또 다른 멋진 방법이 있습니다.
$ ls | grep .java | xargs -I {} javac {} ; jar -cf myJar.jar *.class
ls | grep .java
현재 디렉토리에서 모든 .java 파일 ( )을 가져와 .class ( xargs -I {} javac {}
) 로 컴파일 한 다음 이전에 컴파일 된 클래스 ( jar -cf myJar.jar *.class
) 에서 jar 파일을 만듭니다 .
답변
Java 코드에서 JAR을 컴파일하는 가장 초보자 친화적 인 방법은 Netbeans 또는 Eclipse와 같은 IDE (통합 개발 환경, 기본적으로 개발을위한 사용자 친화적 인 소프트웨어)를 사용하는 것입니다.
- IDE를 설치하고 설정합니다. 다음은 최신 버전의 Eclipse 입니다.
- IDE에서 프로젝트를 만들고 프로젝트 폴더 안에 Java 파일을 넣습니다.
- IDE에서 프로젝트를 선택하고 프로젝트를 JAR로 내 보냅니다. 내보낼 때 적절한 Java 파일이 선택되었는지 다시 확인하십시오.
명령 줄을 사용하면이 모든 작업을 항상 매우 쉽게 수행 할 수 있습니다. 다음과 같은 명령을 실행하기 전에 대상 파일과 동일한 디렉토리에 있는지 확인하십시오.
javac YourApp.java
jar -cf YourJar.jar YourApp.class
… “YourApp”및 “YourJar”를 각각 파일의 적절한 이름으로 변경합니다.