2012년 6월 20일 수요일

enum 사용

간단한 선언
예)
public enum Types {
 TYPE1, TYPE2, TYPE3;
}

String 값을 대입
선언 예)
public enum Types {
 TYPE1("Type 1"),
 TYPE2("Type 2"),
 TYPE3("Type 3");

 private String name;
 Types(String name) {
  this.name = name;
 }

 @Override
 public String toString() {
  return name;
 }
}

사용 예)
package com.enumtest;

public class EnumTest {
 public static void main(String[] args) throws Exception {
  Types type = Types.TYPE1;
  System.out.println(type);
 }
}

결과:
Type 1

2012년 6월 4일 월요일

Ant 사용

소개


Command line 으로 java 프로젝트를 빌드하기에는 패키지명까지 일일이 적어야 하는 번거로움이 있기 때문에 빌드를 도와주는 빌드 시스템을 주로 이용하게 되며 그 중 ant 빌드 시스템 사용법을 기술


1. Ant 설치

  1. 다운로드 : http://ant.apache.org/bindownload.cgi
  2. 원하는 경로에 압축을 해제
  3. $ANT_HOME/bin 경로를 PATH 환경 변수에 추가

2. 소스 코드 및 build.xml 작성

예제 project : hello

최종 폴더 구조
hello/
 + src/
   + com/sample/hello/
     + Hello.java
 + build.xml
 + dist/
   + com/sample/hello/
     + Hello.class

Hello.java
package com.sample.hello;

public class Hello {
 public static void main(String[] args) throws Exception {
  System.out.println("Hello!");
 }
}

build.xml
<?xml version="1.0" encoding="UTF-8"?>
<project name="hello" default="compile">

 <property name="build.dir" location="dist" />

 <target name="compile">
  <mkdir dir="${build.dir}" />
  <javac destdir="${build.dir}" source="1.6" target="1.6" debug="true"
   deprecation="false" optimize="false" failonerror="true">
   <src path="src" />
  </javac>
 </target>
</project>

설명
  • project - root 노드
    • default 속성 - ant 수행시 기본으로 수행할 target 지정
  • property - variable 지정
  • target - 작업 수행 단위
  • mkdir - 폴더 생성
  • javac - java compile
  • src - 소스 경로 지정

3. compile 하기

$ pwd
/path/to/hello
$ ant compile

4. 실행하기

$ pwd
/path/to/hello
$ java -cp dist com.sample.hello.Hello
Hello!

!) Ant 로 실행하기
아래 코드를 project 태그 안에 추가한다.
<target name="run">
 <java classname="com.sample.hello.Hello">
  <classpath>
   <pathelement location="${build.dir}" />
  </classpath>
 </java>
</target>

실행
$ ant run
Buildfile: /path/to/hello/build.xml

run:
[java] Hello!

BUILD SUCCESSFUL
Total time: 0 seconds


Timestamp
tstamp 태그를 이용한다.
참고: http://ant.apache.org/manual/Tasks/tstamp.html
예)
<tstamp>
    <format property="TODAY_UK" pattern="d-MMMM-yyyy" locale="en,UK" />
</tstamp>
또는
<tstamp>
    <format property="today" pattern="yyyy-MM-dd_HHmmss" />
</tstamp>

locale 을 지정하지 않으면 시스템 시간대가 사용된다.

특정 폴더의 파일 목록 출력하기
참고: http://stackoverflow.com/questions/1456852/how-can-i-print-a-fileset-to-a-file-one-file-name-per-line
예)
<fileset id="my-file-list" dir="."></fileset>
    <pathconvert pathsep="${line.separator}" property="files" refid="my-file-list"/>
<echo message="${files}"/>

폴더 만들기
참고: http://ant.apache.org/manual/Tasks/mkdir.html
<mkdir dir="${path}" />

파일 복사하기
copy 태그를 이용한다.
예)
<copy todir="${to-dir}">
    <fileset dir="${from-dir}">
    </fileset>