기술을 얘기한다 2009.06.10 00:25
핸드폰에서 돌아가는 자바 프로그램을 만들기 시작했다. 음... 첨 시작하는 거라 모르는게 너무 많다. 일단, 간단한 프로그램이 돌아가게 하는 것 부터 해본다.

(1) 자바 개발 환경 설치

이클립스를 설치하면 된다. 다들 많이 쓰는 (하지만 나에게는 생소한) 환경이므로 자세한 설명은 생략한다. J2ME용 개발 플러그인인 EclipseME를 설치하려고 하는데 그러려면 우선 Wireless 툴킷이 있어야 한단다. EclipseME의 설치의 전제조건은 여기에 (http://eclipseme.org/docs/prereqs.html) 나와 있다.

(2) Wireless 툴킷 설치

여러 곳에서 구할 수 있다고 하는데 그냥 썬에서 제공하는 것을 쓰기로 한다. 다운로드는 여기서 (http://java.sun.com/products/sjwtoolkit/download.html) 받아서 적당히 설치하면 된다.

(3) EclipseME 설치

여기에 (http://eclipseme.org/docs/installation.html) 설명되어 있는대로 하면 된다.

(4) 샘플 Midlet 만들어보기

우선 프로젝트를 만든다. 보통의 프로젝트와는 달리 File -> New -> Other -> J2ME -> J2ME Midlet Suite 로 선택해서 만든다.

그 안에서 클래스틀 추가한다. 보통의 자바 클래스와는 달리 File -> New -> Other -> J2ME -> J2ME Midlet로 선택해서 만든다. Midlet 샘플 소스는 여기의 (http://today.java.net/pub/a/today/2005/02/09/j2me1.html?page=2) 것을 이용했다.

이렇게 하면 deployed 라는 디렉토리 아래에 jad 와 jar 파일이 생긴다. (Midlet 프로젝트를 선택하고 오른쪽 클릭 -> J2ME -> Create Package해야 두 파일이 생긴다. 이건 확실치 않음) 이 중에서 jar 파일을 핸드폰에 옮겨서 적절한 java vm에서 (나는 JBed를 이용했다. IBM의 J9 도 괜찮다고 하는데 아직 입수 하지 못하였다) 올려서 실행하면 된다.

(5) 폰 없이 테스트 하기

앞의 (2) 단계에서 설치한 wireless toolkit은 폰 환경에서의 JVM을 흉내내는 기능을 해준다. 특히 우리가 사용할 도구는 ktoolbar 라는 프로그램이다. (wireless toolkit이 설치된 디렉토리 아래의 bin 디렉토리 밑에 있다.) 이를 실행하고 Create project from JAD/JAR를 선택한뒤 앞에서 설명한 deployed 디렉토리 아래의 jad 파일을 선택해주면 전화기 모양의 그림이 뜨고 프로그램을 실행해 볼 수 있다.

마찬가지로 이클립스 안에서도 실행환경을 Wireless Toolkit Emulator 로 지정해주면 에뮬레이터가 떠서 마찬가지의 실행을 해볼 수 있다.

(6) 64 비트 리눅스에서 에러가 날 때

만약 설치된 java sdk가 64비트 리눅스 용인 경우 대충 다음과 같은 메시지가 포함된 에러가 난다.
/bin/sublime.so: wrong ELF class: ELFCLASS32 (Possible cause: architecture word width mismatch)
아마도 wireless toolkit은 64비트용 java sdk와는 짝이 맞지 않는 모양이다. 이런 경우에는 32비트용 sdk를 구해서 별도의 디렉토리에 설치하고 (물론 64비트 sdk를 쓸 일이 없다면 덮어 깔아도 되지만...) wireless toolkit 설치를 다시 하면서 sdk 디렉토리를 32비트가 깔린 bin 디렉토리로 지정하면 된다. 굳이 다시 깔기 귀찮으면 .../WTK2.5.2(또는 해당버전)/bin 디렉토리에 가서 파일의 내용 중에
javapathtowtk=/usr/bin/
이런 식으로 된 것으로 모두 32비트가 깔린 bin 디렉토리로 바꿔줘도 되는 것 같다.
신고
posted by 신묘군