[java] .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 파일에 필수 라이브러리를 포함 할 수 없습니다.

대신 다음을 수행 할 수 있습니다.

  1. jar 파일의 루트 폴더에 라이브러리를 수동으로 추출하십시오.
  2. 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.

  1. 패키지로 별도의 프로젝트를 생성합니다 (프로젝트 생성-Java-Java 클래스 라이브러리).
  2. 거기에 .java 클래스를 넣으십시오.
  3. 이 프로젝트를 빌드하십시오.
  4. 프로젝트 폴더로 이동하여 빌드 및 dist 폴더를 찾으십시오.
  5. dist 폴더에서 .jar 파일을 찾으십시오.
  6. 다른 프로젝트를 가져 와서이 .jar 파일을 프로젝트 라이브러리에 추가하십시오.
  7. 가져 오기가 자동으로 수행되는 경우 이제이 라이브러리의 클래스와 해당 메서드를 코드에서 직접 참조 할 수 있습니다.


답변

여기에 또 다른 멋진 방법이 있습니다.

$ 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”를 각각 파일의 적절한 이름으로 변경합니다.