:::: 개발 ::::/::: JAVA :::

java exe 만들기

nayha 2009. 12. 28. 14:04
 JAVA에서 실행 화일 만들기(exe)

JSmooth라는 프로그램을 이용하면 되는데  jar 파일 만들어 주면
알아서 exe 실행파일을 만들어주며 설정 방법도 그리 어렵지 않습니다.

[먼저 EXE를 만들기 위한 프로그램을 포함하는 JAR 파일을 만듭니다.]

1. jar 압축의 manifest 파일은 확장 관련, 패키지 관련 데이터를 정의.

MANIFEST.MF 라는 파일명으로 아래의 내용을 입력한다.



Main-Class: com.oraclejavar.MyMainProgram

2. jar 명령으로 압축.

jar 파일로 압축 하는 명령

jar cmf manifest.mf ExecutableJar.jar .\
파일로 압축한다.cmf : c = create 만든다는 뜻
m = 환경 파일 manifest.mf 지정한다.
f = 압축할 파일명 지정

=========================================================
[EXE만들기]

1. http://pds2.egloos.com/pds/1/200609/06/17/[1]jsmooth_ko.zip 에서 다운받은 후
압축을 풀어 jsmothgen.exe를 실행 합니다.

2. Skeleton
    1> Skeleton 선택하기
       : 콘솔을 보이게 할것인지에 대한 선택, Console Application 또는 해당 Application의 로그를
         보고자 한다면 콘솔을 선택 하면 된다.

3. 실행파일
    1> 실행 가능한 바이너리
        : 만들고자 하는 실행 파일명을 입력 (exe가 아니면 실행파일을 인식 못함)
    2> 실행 파일 아이콘 - 적당히 입력
    3> 현재 디렉토리
        : 입력 없음 (도움말 참조)

4. 어플리케이션
    일단 클래스 패스 부터 설정해 줘야 한다.
    "+" 버튼을 눌러 내가 만들어 놓은 jar 파일을 선택해 주면 된다.
    1> Main 클래스
        : 클래스 패스가 설정되었다면 Main 클래스 선택이 가능하다.
    2> 어플리케이션 인자 - 필요하면 입력
    3> 같이 선택하는 jar가 있다면 선택

5. JVM 고르기
     1> JVM 최소버전
        : 1.4 버전 이후부터 가능

6. JVM 설정
     1> 최대 메모리
        : default 64M, 필요하면 늘여서 설정하면 됨
     2> 최소 메모리
 
결과물

 


=====================================================

아래는 위에서 말씀드린 과정을 Ant를 이용하여 한방에 진행하는
예 입니다.

참고 하시구,  Ant에 관해서는 Ant 강좌를 참고하세요~

<!-- JSmoooth를 이용한 실행 화일 만들기 -->
<!-- JAVA 소스를 컴파일, JAR 파일 만들기, EXE 만들기 순서 -->

<?xml version="1.0" encoding="utf-8"?>
<project name="MyExeDemo" default="makeExe" basedir=".">
  <!-- JSmoooth를 이용한 실행화일을 만들기 위한 Task 정의 -->
  <taskdef name="ganerateExe"
     classname="net.charabia.jsmoothgen.ant.JSmoothGen"
     classpath="./lib/jsmoothgen-ant.jar"/>
  <target name="init">
    <tstamp/>
   <property environment="env"/>
    <property name="src.dir" value="./myApp" />
    <property name="lib.dir" value="lib" />
    <property name="build.dir" value="build" />
    <property name="bin.dir" value="./myApp/bin" />
    <property name="debug" value="on"/>
    <property name="optimize" value="off"/>
    <property name="deprecation" value="off"/>
    <property name="jsmooth.dir" value="./jsmooth"/>
    <property name="config.dir" value="config" />
    <property environment="env"/>
    <path id="classpath">
        <pathelement path="${lib.dir}"/>
        <fileset dir="${lib.dir}">
            <include name="**/*.jar"/>
        </fileset>
        <pathelement path="${build.dir}"/>
        </path>
  </target>
    
  <!-- 자바 소스를 컴파일 합니다. -->
  <target name="compile" depends="init">
    <mkdir dir="${build.dir}"/>
    <mkdir dir="${bin.dir}"/>
        <mkdir dir="${bin.dir}/lib"/>
    <mkdir dir="${bin.dir}/images"/>
          <mkdir dir="${bin.dir}/config"/>
          <mkdir dir="${bin.dir}/logs"/>
    <javac srcdir="${src.dir}"
           destdir="${build.dir}"
           deprecation="${deprecation}"
           debug="${debug}"
           optimize="${optimize}">
           <classpath refid="classpath"/>
    </javac>

  <!-- JAR 파일을 만듭니다. -->
  </target>
  <target name="pakage" depends="compile">  
    <jar destfile="${bin.dir}/lib/myApp.jar" basedir="${build.dir}"
        includes="**" excludes="CVS"/>
  </target>

  <!-- 실행 화일을 만들자 (JSmooth 이용) -->
  <target name="makeExe" depends="pkg">
    <delete file="${bin.dir}/MyApp.exe"/>

    <!-- 사용자가 위에서 정의한 실행화일을 만들기 위한 TASK 입니다. -->            
    <ganerateExe project="./MyApp"
      skeletonroot="${jsmooth.dir}/skeletons"/>
    <copy file="MyApp.exe" toDir="${bin.dir}"/>
    <delete file="MyApp.exe"/>
  </target>
</project>
반응형