티스토리 뷰

Java

Runnable jar 파일 생성하기

꿈이 있는 자유 2014. 4. 28. 14:40

     자바 애플리케이션을 제작하면 보통 eclipse 에서 실행버튼을 클릭하여 프로그램을 실행하기 마련이다. 특별히 ANT 같은 빌드 툴을 사용하지 않는다면 보통 이 방법을 사용한다. 하지만, 이 방법은 배포에 문제가 생긴다. 다른 머쉰에서 실행하려면 완전 수동적 방법을 사용해야 한다. 즉 해당 머쉰에 eclipse 를 설치하고(물론 그러려면 JDK_HOME 혹은 JRE_HOME이 설정돼야 하는 작업을 먼저 해야 하고), workspace 디렉토리에 작업한 자바 애플리케이션 리소스를 모두 붙여 넣기 하고, eclipse 에서 동일한 이름으로 자바 프로젝트를 생성한 다음, 휴~~~그리고 실행버튼을 눌러야 한다.

     보다 쉬운 방법은 없을까? 물론 있다. 그것은 자바 애플리케이션을 jar 파일로 압축해서 배포하는 것이다. 단순 압축하는 것 말고, 실행가능한 다시 말해 main() 을 담고 있는 메일 클래스를 사용하여 프로그램을 실행하도록 만들어 줘야 한다. 그렇게 만든 jar 파일은 아래와 같이 java 명령어를 통해 쉽게 실행할 수 있다.

java -jar JavaApp.jar

     이렇게 작업하기 위해서는 몇 가지 설정을 해 줘야 한다. 이 글은 실행 가능한 jar 파일 생성하는 방법을 소개하고자 한다.


1. eclipse 에서 에러없는 자바 애플리케이션 생성한다.


2. 모든 파일은 패키지로 생성한다.


3. 프로젝트 하위에 META-INF 폴더 생성후 하위에 MANIFEST.MF 파일 생성할 것


4. MANIFEST.MF 파일에 아래와 같이 편집 저장한다. 각 응용 프로그램에 맞게 적절하게 수정한다. 여기서 중요한 것은 기본 라이브러리외에 더 필요한 라이브러리들은 별도로 Class-Path: 에 경로와 함께 기술해야 한다. 또한 main() 을 갖고 있는 클래스의 이름도 Main-Class: 에 정확하게 패키지이름.클래스 이름 형식으로 기술해야 한다.

    Manifest-Version: 1.0

   Class-Path: lib/sqlite.jar

   Main-Class: kr.co.javaexpert.lib.view.Main


5. eclipse 에서 File 메뉴의 Export... 을 선택하자.


6. Export 창에서 Java > JAR file 를 선택한 뒤, Next 버튼을 누르자.


7. JAR File Specification 창에서 다음의 그림과 같이 선택한 자바 애클리케이션의 src 폴더만 선택하자.

  1. 이미 선택돼있는 Export generated class files and resources 그대로
  2.  JAR file : jar 파일이 만들어질 경로 지정 ex) D:\Temp\RecordMgmt\RecordMgmt.jar
  3.  Options 에서 3개 체크박스 모두 선택
    • Compress the contents of the JAR file
    • Add directory entries
    • Overwrite existing files without warning


8. JAR Packaging Options 창에서 기본선택 그대로. Next 버튼 클릭.


9. JAR Manifest Specification 창에서

     Specify the manifest :

    • Use existing manifest from workspace 선택,
    • Manifist file : 경로 지정할 것 ex)/RecordMgmt/META-INF/MANIFEST.MF <---위의 3에서 지정한 경로 입력


10. Finish 버튼 클릭하자. 경고 혹은 에러 메시지가 없다면 성공적으로 완성한 것이다.

11. 위의 7번에서 지정한 경로에 가면 RecordMgmt.jar 확인할 수 있다.


12. eclipse 프로젝트에서와 같이 각각의 디렉토리를 그대로 생성하고, 각 디텍토리속에 필요한 파일도 똑같이 갖다 놓는다.

   ex) images/image.jpg,  lib/dbinfo.properties, lib/sqlite.jar, sqliteroom/test.db

     즉 이클립스에서의 디렉토리 경로와 같아야 한다.


13. 마지막으로 커맨드 창에서 확인한다.

java -jar RecordMgmt.jar




공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함