source

.java 파일에서 JAR을 만들려면 어떻게 해야 하나요?

bestscript 2022. 11. 2. 22:44

.java 파일에서 JAR을 만들려면 어떻게 해야 하나요?

단일 프레임의 Java 어플리케이션(프로젝트가 있는 어플리케이션이 아니라 프로젝트 내의 어플리케이션, .java)을 사용하여 심플한 프로그램을 작성하고 있었습니다.두 파일 모두 .java이기 때문에 JAR에 필요한 매니페스트를 쓸 수 없습니다.

MyApp.java는 패키지가 포함된 클래스처럼 시작하여 공용 클래스를 가져옵니다.MyApp★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★!【JDeveloper 11g】【JDeveloper 11g】【JDeveloper 11g】

이 파일들로 JAR을 만드는 방법은 없나요?

명령 프롬프트를 엽니다.

.java 파일이 있는 디렉토리로 이동합니다.

디렉토리 빌드를 작성

명령줄에서 Java 컴파일 실행

javac -d ./build *.java

오류가 없으면 빌드 디렉토리에 클래스 트리가 있어야 합니다.

빌드 디렉토리로 이동하여

jar cvf YourJar.jar *

매니페스트 체크 jar 명령줄 스위치 추가용

명령줄만 있으면 됩니다.

javac MyApp.java
jar -cf myJar.jar MyApp.class

IDE가 명령줄 터미널을 사용하지 않도록 합니다.

네, 이것이 제가 찾고 싶었던 해결책입니다.대신 여기에 이렇게 적습니다.

먼저 .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

Windows에서 "를 사용하여 여러 파일을 분리하는 경우 위에는 여러 라이브러리가 포함됩니다. 그렇지 않으면 GNU/Linux에서 ":"를 사용하여 jar 파일을 만듭니다.

   jar -cvfe App.jar App my/app/

위는 앱을 메인 클래스로 나타내는 매니페스트와 함께 애플리케이션을 만듭니다.

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>

file.reference name은 Netbeans IDE에 라이브러리를 추가한 후 project.properties 파일에 있습니다.

종종 다음과 같이 매니페스트를 지정해야 합니다.

jar -cvfm myJar.jar myManifest.txt myApp.class

"create verbose jarFilename manifestFilename" 이 표시되고 그 뒤에 포함할 파일이 표시됩니다.Verbose는 무엇을 하고 있는지에 대한 메시지를 인쇄하는 것을 의미합니다.

제공하는 매니페스트 파일의 이름은 다음과 같이 지정할 수 있습니다.jar는 자동으로 이름을 변경하고 jar 파일 내의 올바른 디렉토리에 저장합니다.

이것은 단말기를 사용하지 않고 IDE에서 직접 실행할 수 있습니다.예를 들어, 팥.

  1. 패키지로 별도의 프로젝트를 만듭니다(프로젝트 만들기 - Java - Java 클래스 라이브러리).
  2. .java 클래스를 여기에 넣습니다.
  3. 이 프로젝트를 구축합니다.
  4. 프로젝트 폴더로 이동하여 빌드 및 디스트 폴더를 찾습니다.
  5. dist 폴더에서 .jar 파일을 찾습니다.
  6. 다른 프로젝트를 가져와 이 .jar 파일을 프로젝트 라이브러리에 추가합니다.
  7. Import가 자동으로 이루어지는 경우 이 라이브러리의 클래스와 메서드를 코드에서 직접 참조할 수 있습니다.

이 작업을 수행하는 또 다른 멋진 방법은 다음과 같습니다.

$ ls | grep .java | xargs -I {} javac {} ; jar -cf myJar.jar *.class

모든 .java 파일을 가져옵니다(ls | grep .java현재 디렉토리에서 .class로 컴파일합니다.(xargs -I {} javac {}그런 다음 이전에 컴파일된 클래스에서 jar 파일을 만듭니다( ).jar -cf myJar.jar *.class).

Java 코드에서 JAR을 컴파일하는 가장 초보자에게 친숙한 방법은 Netbeans나 Eclipse와 같은 IDE(통합 개발 환경, 기본적으로 사용자 친화적인 개발 소프트웨어)를 사용하는 것입니다.

  • IDE 를 인스톨 해 셋업 합니다.여기 이클립스의 최신 버전이 있습니다.
  • IDE에 프로젝트를 만들고 Java 파일을 프로젝트 폴더에 넣습니다.
  • IDE에서 프로젝트를 선택하고 프로젝트를 JAR로 내보냅니다.내보낼 때 적절한 Java 파일이 선택되었는지 다시 확인합니다.

명령줄을 사용하면 이 모든 작업을 쉽게 수행할 수 있습니다.다음과 같은 명령을 실행하기 전에 대상 파일과 동일한 디렉토리에 있는지 확인하십시오.

javac YourApp.java
jar -cf YourJar.jar YourApp.class

...'YourApp'과 'YourJar'를 각각 파일 이름으로 변경합니다.

하나의 단순한 메인 클래스(Count.class 등)가 있고 이 클래스를 시작점으로 지정하는 매니페스트 파일이 포함된 jar를 원하는 경우 다음을 수행할 수 있습니다.

jar cfe app.jar Count Count.class 

출처 : https://docs.oracle.com/javase/tutorial/deployment/jar/appman.html

언급URL : https://stackoverflow.com/questions/9941296/how-do-i-make-a-jar-from-a-java-file