2012-01-17 3 views
6

다른 JAR 라이브러리가 들어있는 하나의 실행 파일 JAR을 만들고 싶습니다. 그러나 JAR을 실행하면 클래스 경로 문제가 발생합니다.다른 라이브러리 파일을 포함하는 JAR 파일 만들기

클래스 경로 문제를 어떻게 해결합니까?

+0

* "다른 jar 라이브러리를 포함하는 하나의 실행 가능 Jar를 만들고 싶습니다."* 원하는 것은 작동하는 것보다 덜 중요합니다. [JWS] (http://stackoverflow.com/tags/java-web-start/info) 또는 다른 유형의 설치 프로그램을 사용하여 여러 Jar를 배포하는 것이 여러 차례 잘 수행되는 것으로 나타났습니다. –

+0

중복 질문 : http://stackoverflow.com/questions/5424761/java-packaging-building-common-techniques-jar-file-specifically/5424847#5424847 –

답변

9

나는 이렇게 생각할 수 있다고 생각합니다.

다음은 간단한 질문의 예입니다. 먼저 D:\javademo과 같은 프로젝트 디렉토리가 있다고 가정합니다. 이 작업 디렉토리에서 기본 클래스 HelloWorld.java을 만들고 thtat에는 commons-lang.jar과 같은 다른 JAR 파일이 포함되어 있습니다. 이제 HelloWorld와 commons-lang.jar 메인 클래스를 test.jar 파일에 저장해야합니다.

Manifest-Version: 1.0 
Created-By: tony example 
Class-Path: test.jar commons-lang.jar 
Main-Class: org.tony.java.HelloWorld 

우리는이 파일 test.mf 이름 : 우리는 다음과 같이 우리의 클래스 경로와 주요 클래스 를 지정할 수 있도록

는 먼저 우리는 우리의 매니페스트 파일을 편집해야합니다. 이제 우리는 다음과 같이 우리의 JAR 파일을 생성 jar 명령을 사용

jar -cvfm test.jar test.mf -C ./ . 

는 그 다음 JAR 파일 test.jar을 생성합니다. 이 명령을 사용하여 java 명령을 사용하여이 기본 클래스를 실행할 수 있습니다.

java -jar test.jar 

이것이 내 해결책입니다. 나는 당신에게 도움이되기를 바랍니다.

+0

jar 파일에 라이브러리 종속성을 추가하는 방법에 대해 혼란스러워합니다. –

0

타사 라이브러리를 사용해야합니다. 예 : OneJar. 표준 JRE 도구 대신 OneJar 도구 (예 : Ant 작업)를 사용하여 최종 JAR 파일을 작성해야합니다.

이러한 JAR 파일을 실행하면 OneJar의 서비스 클래스가 실행됩니다. 그런 다음이 클래스는 클래스뿐만 아니라 내부에 압축 된 JAR 파일을로드하고 기본 클래스를 실행합니다.

이미 비슷한 질문과 답변이 있습니다. 예 : 스택 오버플로 질문 Easiest way to merge a release into one JAR file.

+0

나는 그 일을 시도했지만 작동하지 않습니다. –

+0

언제 사용해 보셨습니까? –

+0

게시하기 전에 여러 번 시도했지만 여전히 작동하지 않습니다. –

관련 문제