SWT/JFace 프로그램을 간단하게 실행가능한 JAR(executable JAR) 파일을 만들어서 배포하는 방법이다.
※ SWT/JFace는 Swing과 같은 Java의 GUI 프레임워크이다. 자세한 내용은 검색을 해서 알아보도록 하자.
<목차>
- 1. SWT/JFace 프로그램 만들기
- 2. 파일 수집
- 3. JAR 파일 만들기(알집 이용)
- 4. 콘솔에서 jar 명령어로 만들기
- 5. 실습 파일
1. SWT/JFace 프로그램 만들기
2. 파일 수집
- 2.1 참조하는 라이브러리 : SWT/JFace 라이브러리 등
- 2.2 내 프로그램 클래스 파일 : 내가 만든 프로그램에서 산출된 모든 *.class
- 2.3 MANIFEST 설정 : 단순 텍스트 파일 ; "실행가능한 jar" 파일의 작동 사항 구성(configuration)
2.1 참조하는 라이브러리
SWT/JFace 프로그램에 import한 라이브러리(*.jar 따위)를 복사해와야 한다.
(배포 프로그램이 어느 곳에서든 실행될 수 있도록 아예 라이브러리를 죄다 포함시킨다.)
예)
예에서는, "D:\SoftWare\eclipse\plugins"에 SWT/JFace 관련 라이브러리가 포함돼 있다.
다양한 서적에서 라이브러리 조합을 다양하게 소개하고 있는데 여기서는 다음과 같은 조합을 사용했다. (※ OS에 따라 *.jar파일이 다르며 각 파일의 버전도 다를 수도 있다. 여기서는 Windows XP 환경에서 작업했다.)
org.eclipse.core.commands_3.4.0.I20080509-2000.jar
org.eclipse.core.runtime_3.4.0.v20080512.jar
org.eclipse.equinox.common_3.4.0.v20080421-2006.jar
org.eclipse.jface_3.4.0.I20080606-1300.jar
org.eclipse.swt.win32.win32.x86_3.4.0.v3448f.jar (<- 요즘 버전은 DLL 파일이 여기 다 포함돼 있다)
2.2 내 프로그램 클래스 파일
HelloSWT.class
(나의 프로그램에서 산출된 모든 class 파일들)
2.3 MANIFEST.MF 만들기
그냥 텍스트 파일이다. 실행가능한 JAR 파일을 만들려면 반드시 설정해 줘야 한다.
메모장 등으로 만들면 된다.
Manifest-Version: 버전
Class-Path: 참조하는 클래스 파일, 라이브러리 등
Main-Class: 메인메서드있는클래스파일[엔터]
이게 좀 형식이 까다롭다.
Manifest-Version, Class-Path, Main-Class 이렇게 헤더를 작성하고 뒤에 관련 사항을 적어주면 되는데, ':'를 헤더에 여백 없이 붙여주어야 한다.
예) Main-Class: (O), Main-Class : (X)
Class-Path: (O), Class-Path : (X)
* Manifest-Version은 관련 버전을 써주면 된다. 실용적인 측면에서 그다지 중요한 것은 아닌 듯.
* Class-Path에는 참조하고자 하는 클래스 파일 경로를 설정해 주면 된다.
예) Class-Path: swt.jar jface.jar 등등 // 각 파일은 한칸씩 띄어쓰기 해서 구분
* Main-Class에는 내 프로그램의 메인 메서드를 포함하고 있는 클래스 파일을 적어주면 된다.
예) Main-Class: main.class
여기서는 다음과 같이 작성하였다 : MANIFEST.MF
Manifest-Version: 1.0
Class-Path: org.eclipse.core.runtime_3.4.0.v20080512.jar org.eclipse.jface_3.4.0.I20080606-1300.jar org.eclipse.swt.win32.win32.x86_3.4.0.v3448f.jar org.eclipse.equinox.common_3.4.0.v20080421-2006 org.eclipse.core.commands_3.4.0.I20080509-2000
Main-Class: HelloSWT
Class-Path 써넣을 때 파일명이 너무 길어서 저렇게 구겨져 보인다.
실제로는 스페이스 한칸으로 구분되어 있다.
3. JAR 파일 만들기(알집 이용)
- 여기까지 작업을 잘 진행하였으면, 파일 및 디렉토리 구성을 다음과 같이 한다.
(META-INF에는 위에서 만든 MANIFEST.MF 파일을 넣어둔다.)
- META-INF 폴더와 포함시킬 *.class파일들(여기서는 HelloSWT 달랑 하나)을 선택하고,
마우스 오른쪽 버튼을 눌러 "알집으로 압축하기"를 선택한다.
- 알집의 "압축하기" 메뉴가 나타나면, 만들고자 하는 jar파일의 이름을 적당히 짓고 "압축(A)" 버튼을 누른다.
(여기서는 "test.jar"라고 했다.)
- test.jar 파일이 생성되었다.
- 이제 라이브러리(*.jar)와 실행 jar 파일만 가지고 배포하면 된다. 아래 그림과 같이 폴더에 집어 넣고 압축 파일로 만들어서 배포하면 된다. 실행은 JRE가 설치된 환경에서 test.jar만 실행하면 되는 것이다. (※ 사용자 환경에 JRE가 없을 수도 있으니 개발 버전에 적합한 JRE 설치 파일을 포함시켜 사용자에게 먼저 설치하도록 요구하는 것도 좋을 것이다.)
- 실행 화면.
4. 콘솔에서 jar 명령어로 만들기
jdk에 포함돼 있는 'jar.exe'를 이용해서 META-INF폴더와 MANIFEST.MF가 만들고자 하는 jar파일에 자동으로 포함되게하는 방식도 있다. (더 자세한 사항은 'jar'와 'manifest'로 검색해 본다. 여기서는 간단하게 소개만 한다.)
예)
한 폴더에 파일을 모아놓는다.
- 내 프로그램 클래스 파일들 (*.class)
- 참조할 라이브러리(*.jar 등)
- MANIFEST 텍스트 파일
콘솔창에서 다음과 같이 입력하면 된다.
jar cmf MANIFEST.txt test.jar *.class // test.jar 파일이 만들어진다.
java -jar test.jar // test.jar 실행 (java -jar로 실행하면 에러가 났을 때 구체적으로 볼 수 있다.)
여기서 *.class는 test.jar에 포함시킬 모든 클래스 파일이다. 자기가 만든 프로그램에 관련된 모든 클래스파일을 의미한다고 보면 된다.
(c, m, f 에도 의미가 각각 있다. 궁금하면 검색해서 살펴보자.)
5. 실습 파일
- 작업 환경 : http://travelsky.oranc.co.kr/makingJar/making_jar.zip
- 배포판 : http://travelsky.oranc.co.kr/makingJar/test-program_distribution.zip
[출처] [Executable JAR 파일] SWT/JFace 프로그램 배포판 만들기 (자바(java)초보스터디) |작성자 즐거웁게
'IT_Programming > Java' 카테고리의 다른 글
[펌] 제네릭스 해부, Part 1 (0) | 2009.01.22 |
---|---|
[펌] 고급 PreparedStatement를 사용하여 JDBC 코드에 로깅 추가하기 (0) | 2009.01.02 |
[펌] Apache Commons Lang에 관한 내용2 (0) | 2009.01.02 |
[펌] Apache Commons Lang에 관한 내용1 (0) | 2009.01.02 |
[펌] JNI 를 사용해서 C 로 작성된 dll을 실행하기 (0) | 2008.11.18 |