2013년 9월 6일 금요일

자바에서 실행 화일 만들기(exe), 자바실행화일, 오라클자바커뮤니티자바교육강좌

자바에서 실행 화일 만들기(java exe), 자바실행화일, 오라클자바커뮤니티자바교육강좌

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>

댓글 없음:

댓글 쓰기