IT_Programming/Dev Tools

[eclipse] jar파일 생성 → JSmooth로 JAR파일을 EXE파일로 변환하는 방법

JJun ™ 2008. 1. 25. 21:29
LONG
 

오픈소스중 하나인 JSmooth 유틸리티를 이용하여 JAR파일을 EXE파일로 변환하는 방법을 알아보도록 하겠습니다. 이번 강좌에서는 윈도우즈용 실행파일(exe)생성에 대해서만 간단히 알아보겠습니다. 그외 세부적인 설명은 관련문서나 타 강좌를 참고하시기 바랍니다.
JSmooth는 JAR파일안에 존재하는 자바파일 하나를 JVM(자바가상머신)을 이용해서 실행해주는 래퍼(Wrapper)파일을 생성해줍니다. 따라서, 생성된 exe파일 실행시

사용할 JVM을 이용하는 방법을 설정하며, JVM이 미 설치된경우 그에 따른 방법을

설정할 수 있습니다.

실행파일을 만들 샘플예제는 이전 강좌에서 생성한 TestSwtExe.jar파일을 이용하도록

하겠습니다.

 

[JSmooth를 이용한 윈도우즈용 실행파일 생성 방법]

 

1. JSmooth유틸을 설치한다.
  
http://jsmooth.sourceforge.net/ 사이트에서 다운로드 받으시기 바랍니다.
   참고로, 본 강좌에 사용된 버전은 0.9.9-7 버전입니다.
   JSmooth의 설치는 Next만 클릭하시면 될 정도로 간단합니다.

 

2. 배포의 편의를 위해 배포 환경을 구성합니다.

 

  - SWT 프로그램의 경우 JVM외에 swt.jar파일및 native dll파일들이 필요합니다.
    편의상 배포할 TestSwtExe.jar파일의 하위에 lib폴더를 만들어서
    라이브러리성 파일들은 모두 lib쪽으로 모아두도록 하겠습니다.

  - "환경설정강좌"에 사용했던 swt.jar파일과 실행에 필요한 dll파일들
    위 이미지처럼 lib폴더에 모두 복사하시기 바랍니다.

 

3. JSmooth 프로그램을 실행합니다.

 

 

4. "Skeleton"을 선택 후 필요한 부분을 설정 함.

 

    (1) : 좌측 패널에서 Skeleton을 선택합니다.
         - 생성할 래퍼파일의 종류와 JVM에 대한 설정을 하는 곳입니다.

    (2) : Windowed Wrapper를 선택합니다.
         - 윈도우즈에서 실행 가능한 래퍼용 파일을 생성하게 됩니다.

    (3) : 생성된 exe파일을 실행시 사용자의 컴퓨터에 JVM이 설치되어 있지 않다면
         JVM설치를 위해 출력할 메시지와 JVM설치를 위해 다운로드 할 URL을 적어줍니다.

 

5. "Executable"을 선택 후 필요한 부분을 설정 함.

 

   (1) : 좌측 패널에서 Executable을 선택합니다.
        - 생성할 EXE 래퍼 파일에 대한 정보를 설정합니다.

   (2) : (2)표시된 찾기버튼을 클릭해서 생성할 실행파일명과 위치를 설정합니다.
        c:\yoo7577\TestSwtExe.exe 로 설정했습니다.
        - 생성할 실행파일에 멋진 아이콘을 사용하려면 Icon항목에서 아이콘 파일을

          설정하시기 바랍니다.

6. "Application"을 선택 후 필요한 부분을 설정 함.

 

    (0) : 좌측 패널에서 Application을 선택합니다.

    (1) : 위 그림처럼 (1)표시 부분을 클릭해서  Classpath를 제일먼저 잡아줍니다.
         - 이곳에는 실행파일로 만들 TestSwtExe.jar파일과 SWT 실행을 위해 필요한

           swt.jar파일을 추가합니다.

    (2) : (2)번 표시 부분을 클릭하셔서 Main class항목에 exe파일 실행시 실행될

           클래스파일을 설정해 줍니다.
         - Classpath에 설정된 파일이 한해서만 (2)번 표시의 찾기 기능을 이용할 수 있습니다.
           Classpath에 TestSwtExe.jar파일이 그림처럼 설정되었다면

           아래 이미지처럼 선택 가능합니다.

  
         (1) Available Classes를 더블 클릭하면 선택가능한 클래스 파일 목록이 나옵니다.
         (2) 우리가 만들 파일은 EventTest 클래스파일이기때문에 EventTesst를 선택합니다.
         (3) Select버튼을 클릭해서 종료합니다.

 

7. "JVM Selection"을 선택 후 필요한 부분을 설정 함.

 

  - 생성된 EXE 래퍼 프로그램에서 사용할 JVM에 대한 설정을 합니다.
    사용할 JVM의 버전 제한이 필요하시면 Java version settings에
    "1.4"처럼 제한할 JVM의 버전을 기입하시면 됩니다.

  - JVM Selection메뉴에서 주의 깊게 살펴볼 부분은
    아마도 빨간박스표시 부분의 JVM 검색순서일 것입니다.
    이곳에서는 EXE 래퍼 프로그램에서 사용할 JVM을 찾는 순서를 지정합니다.
    위 그림파일의 설정을 예로든다면,
    제일먼저 레지스트리(Windows Registry)에 등록된 JVM을 이용하며,
    만약 레지스트리에 JVM에 대한 정보가 설정되지 않다면
    JAVA_HOME(JAVA_HOME environment variable)이라는 환경변수에 정의된

    자바파일을 사용하겠다는 것입니다.

8. "JVM Configuration"
을 선택 후 필요한 부분을 설정 함.  

 

  (1): 좌측 패널에서 JVM Configuration을 선택합니다.
         - Memory Settings 항목은 JVM이 사용할 최초/최대 메모리를 설정하게 됩니다.
          JVM의 메모리 설정이 필요시 이 부분에서 설정 가능합니다.

   (2) : SWT 네이티브 라이브러리들이 위치한 디렉토리를 설정합니다.
        (2)번 표시 부분을 클릭하면 아래 그림과 같은 속성 편집창을 이용해서 설정가능 합니다.

 

        우리는 2.번 항목에서 실행에 필요한 파일들을 lib폴더에 복사해 놓았기때문에
        위 그림처럼 Name에는 java.library.path를 Value에는  lib를 설정합니다.
        - 환경설정 강좌에서 이 부분의 필요성을 설명했었습니다.
          SWT의 실행을위한 네이티브 DLL 파일들이 있는 위치를 설정하는 것입니다.

9. System > Save 메뉴를 클릭하여 환경 설정내용을 별도의 파일로 저장합니다.

 

 

   - 간단히 제 경우 샘플이라고 지정했습니다.
   - 저장의 단축아이콘은 
 입니다.

10. Project > Compile 메뉴를 선택해서 실행파일을 생성합니다.
    

     - 컴파일의 단축 아이콘은  입니다.

    - 아래와 같은 실행 결과가 출력됩니다.

 

    - c:\yoo7577 폴더에 가서 생성된 실행파일을 확인합니다.
           

 

      - TestSwtExe.exe 파일이 생성되었음을 알 수 있습니다.
        참고로 샘플.jsmooth는 9.번 항목에서 저장한 파일입니다.

11. 생성된 TestSwtExe.exe 파일을 실행합니다.
   
    - 위 그림처럼 정상적으로 실행됨을 확인할 수 있습니다.*^^*

 

이상으로 간단한 JSmooth를 이용하여 EXE 래퍼 파일을 생성하는 방법을 살펴봤습니다.
특별히 어려운 부분은 없으며 JSmooth의 경우 JVM이 제공하지 못하는 기능들을
추가로

제공합니다. 세부내용들은 JSmooth의 각 메뉴들을 직접 사용해 보시기 바랍니다.
참고로, JSmooth를 이용해서 생성된 EXE 래퍼 일에 대한 라이센스는 상업적으로 이용
가능

합니다.

ARTICLE
이해의 편의를 위해 설명은 최대한 간단히 jar파일 생성에만 중점을 두도록 하겠습니다.
그외 세부 기능들은 관련 서적이나 자료들을 참고하시기 바랍니다.
 
1. Eclipse를 실행합니다.

 

 
 
2. 아래 그림처럼 프로젝트명에서 마우스를 우클릭하셔서 Export를 선택합니다.

이클립스 좌측 패널에서 "프로젝트명(SwtProject)에서 우클릭 > Export 선택"

 
 
3. JAR file을 선택후 Next 버튼을 클릭합니다. (빨간박스표시 부분 참고)

 

 
4. JAR파일로 만들 소스파일 선택및 생성 위치를 설정후 Finish 버튼을 클릭합니다.

 

  
   그림에서 마우스 커서가 있는 곳처럼 +버튼을 클릭하시면 트리를 펼치거나 접을 수 있습니다.
  (1) JAR Export창은 기본적으로 아래 그림처럼 모든 파일이 선택되어있습니다.
       

        본인은 EventTest.java 파일만 JAR로 만들 예정이므로 (1)번 표시된 부분의
       체크를 해제하시면 선택된 모든 파일들이 해제됩니다.

 
  (2) 트리를 펼쳐서 (2)번 위치를 선택하시면 오른쪽 창에 EventTest.java 파일이 나옵니다.
 
  (3) EventTest.java 파일을 체크하시기 바랍니다.
       EventTest.java 파일을 체크하시면 (1)번 그림처럼 색상이 변합니다.
  (4) JAR파일이 생성될 폴더와 파일명을 적어줍니다.
       제경우 (4)번 표시처럼 c:\yoo7577폴더에 TestSwtExe.jar 파일을 만들도록 했습니다.
 
  (5) Finish 버튼을 클릭하시면 (4)에서 설정한 jar파일이 생성됩니다.
       - 참고로, Next버튼을 클릭하시면 세부 설정이 가능하지만 본 강좌에서는 필요 없습니다.

5. jar파일이 생성된것을 확인합니다.

그림처럼 C:\yoo7577폴더에 TestSwtExe.jar 파일이 생성되었음을 알 수 있습니다.

 
 
Tip 1) 특정 파일만 Export 하기
4.번 항목의 (1) ~ (3)까지의 절차가 불 편할 경우
1.번 항목에서 프로젝트 명을 선택하지 마시고 JAR파일로 만들 파일들을 선택한후
우클릭하셔서 Export하시면 해당 파일만 선택되서 나옵니다.
예를들어, EventTest.java 파일만 선택하고 싶다면
1.번 항목에서 아래처럼 EventTest.java 파일을 선택후 우클릭 > Export를 선택하시면 됩니다.

 

 
Tip 2) JAR파일 설정값 저장후 이용하기
JAR파일을 자주 생성해야 한다면 매번 위처럼  선택하면 번거롭습니다.
특히나, 생성될 JAR파일이 테스트나 배포등 여러가지 경우가 필요하다면
매번 그 상황에 맞는 파일들을 선택해야 하는데 너무 귀찮죠^^
이런경우 4.번 항목에서 설정한 내용을 별도의 파일에 저장했다 다시 이용할 수 있습니다.
4.번 항목의 (5)번 위치에서 Finish버튼을 클릭하지 않고
Next버튼을 클릭하시면 아래와같은 환경설정 화면이 나옵니다.

(1)번 표시부분을 체크하시면 설정한 내용을 저장할 수 있습니다.

(2)번 표시부분의 Browse..버튼을 클릭하셔서 저장할 위치를 설정하시기 바랍니다.
 
제 경우 프로젝트 루트에 편의상 "DefaultJar"라고 지정했습니다.
참고로, 한글을 입력하셔도 무관합니다.
(.jardesc는 Jar파일 Description파일로서 이클립스가 자동으로 붙여줍니다.)
생성된 .jar파일 실행시 기본적으로 실행될 Main 클레스 설정이나 그 외 부가 옵션의 설정이 필요한 분들은 Next버튼을 선택하시고, 그렇지 않다면 Finish버튼을 선택하시면 됩니다.
 
아래처럼 JAR파일 생성용 DefaultJar.jardesc 파일이 생성되었음을 알 수 있습니다.

 

"DefaultJar.jardesc"에 설정한 내용대로의 jar파일 생성이 필요할 경우에는
위 빨간박스에서 우클릭하셔서 "Create JAR"를 실행하면 편하게 jar파일이 생성됩니다.

 

참고로 (2)번 표시부분인 "Open JAR Packager..."는 생성될 jar파일의 내용을 변경하고자 하실 경우에
이용하시기 바랍니다.
 

 

source-starpooh.zip
0.0MB