2011-11-16 2 views
3

Eclipse를 사용하여 실행 가능한 jar를 작성했습니다. 그것은 다른 외부 항아리에 의존합니다.
Eclipse에서는 Extract required libraries into generated JAR을 선택하기 만하면됩니다.
실행 가능한 jar를 만들 수 있습니다. jre가 설치된 모든 위치에서 실행할 수 있습니다.자바 이클립스 실행 가능 jar 만들기

하지만 병을 컴파일하는 데 명령 줄을 사용하는 경우.
javac -classpath [external jars] *.java
jar cfm [a name].jar manifest *.class [external jars]

그것은 단지를 생성 할 수 있습니다. 그러나 jar 파일은 생성 된 디렉토리에서만 실행될 수 있습니다. 다른 디렉토리 나 컴퓨터에 넣으면 NoClassDefFoundError이라고 불평합니다.

제 질문은 Eclipse로 명령 줄을 사용하여 실행 가능한 jar 파일을 생성 할 수 있다는 것입니다. 이클립스는 jar 파일을 패키지로 Ant를 사용

+0

추출물 대신 생성 된 jar 파일로 패키지 필수 라이브러리를 선택해 보았습니까? – MBU

+0

Eclipse에는 아무런 문제가 없습니다. Eclipse가 생성 한 jar는 어느 위치에서나 실행할 수 있습니다. 내 문제는 명령 줄을 사용하여이를 수행하는 방법입니다. – chnet

+0

다른 항아리가 내부에 포장되어 있는지 확인하기 위해 winrar 또는 이와 비슷한 jar 파일을 열었습니까? – Tudor

답변

3

jar 파일은 종속성 jar를 내부에 가질 수 없습니다. 이클립스의 경우, 의존성 jar의 모든 클래스를 풀고 클래스 파일과 함께 단일 jar 파일로 묶을 것이다. 일식 방법으로, 당신은

1에 필요하지 않은 경우) 모든 종속 항아리

Manifest-Version: 1.0 
Main-Class: Your Main class 
Class-Path: dependency1.jar dependency2.jar dependency3.jar 
dependency4.jar dependency5.jar 

2) 모든 종속성을 포함하여 클래스 경로를 사용하여 클래스 파일로 항아리 만들기를 나열하는 매니페스트 파일 만들기 jar 파일을 만들고 위에서 만든 mainfest 파일을 사용합니다.

3) jar을 만든이 폴더에서 모든 종속성 jar를 배치하십시오.

이제

dependency5.jar dependency4.jar dependency3.jar dependency2.jar dependency1.jar 당신과 같이 표시됩니다 폴더 (위에서 생성 한 매니페스트 파일 포함)

yourjar.jar

4) 이제 이것을 공유하려면이 폴더를 공유해야하며이 폴더에서 jar를 시작할 수 있습니다. 이것은 귀하의 실행 폴더이며 어디서나 실행할 수 있습니다.

+0

예. 나는 네 방법을 사용했다. 폴더를 공유하고 폴더에서 항아리를 시작해야합니다. 그러나 이클립스를 사용하여 jar 파일을 생성하면 폴더가 필요 없다. 난 어떤 장소에 항아리 (폴더가 아닌)를 배치 할 수 있습니다. – chnet

+0

단일 jar를 사용하여 종속성 jar에 대한 업데이트가있는 경우 전체 jar를 다시 묶어야합니다. 단순히 수정 된 종속성 jar를 빌드하고 바꿀 수 없습니다. 이 방법을 사용하면 수정 된 항아리 만 업데이트 할 수 있습니다. –

2

, 내보내기 창에서 개미 파일 저장 체크 박스 체크 항아리 생성하는 데 사용할 일식 개미 스크립트를 저장할 수 있도록

screenshot

을, 당신은 생성 할 수 있습니다 Ant Build.xml 스크립트를 실행하고 원하는 경우 이클립스를 사용하지 않고 명령 행에서 직접 ant를 사용하여 실행하십시오.

0

실행 가능한 jar를 만드는 데 선호하는 방법은 one-jar라는 유틸리티를 사용하는 것입니다. 나는 블로그 게시물에 maven과 ant에서 그것을 사용하는 방법을 논의했습니다 : my one jar blog post

+0

URL에 404 오류가 발생합니다. [this one] (http : // chrisjordan.ca/post/15052417887/building-self-contained-executable-jars-2-ways)? –

관련 문제