.java에서 JAR을 만드는 방법
단일 프레임을 가진 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 클래스를 넣으십시오.
- Build this project.
- Go to your project folder and find build and dist folders there.
- Find .jar file in your dist folder.
- Get your other project and add this .jar file to project libraries.
- You can now reference classes from this library and its methods directly from code, if import is automatically done for you.
Here is another fancy way of doing this:
$ ls | grep .java | xargs -I {} javac {} ; jar -cf myJar.jar *.class
Which will grab all the .java files ( ls | grep .java
) from your current directory and compile them into .class (xargs -I {} javac {}
) and then create the jar file from the previously compiled classes (jar -cf myJar.jar *.class
).
참고URL : https://stackoverflow.com/questions/9941296/how-do-i-make-a-jar-from-a-java
'developer tip' 카테고리의 다른 글
모바일 용 메타 태그 – 사용해야합니까? (0) | 2020.11.14 |
---|---|
data.table을 재구성하는 적절하고 빠른 방법 (0) | 2020.11.14 |
PostgreSQL로 중복 행 찾기 (0) | 2020.11.14 |
팬더 : 시간 간격 별 롤링 평균 (0) | 2020.11.14 |
RFC 1123 파이썬에서 날짜 표현? (0) | 2020.11.14 |