상세 컨텐츠

본문 제목

[J2ME 기초] 03. MIDP를 위한 환경 설정 [2/2]

프로그래밍/Mobile

by 라제폰 2008. 12. 13. 18:55

본문


자..저번 강좌에 이어 MIDP를 위한 환경 설정에 대해 더 알아 봅시다.

이번 강좌에서는 서버로부터 MIDlet을 다운받아 실행하는 법과

MIDP Wireless Toolkit사용법에 대해 알아 보겠습니다.

특히, MIDlet을 jar로 압축해 올려놓아서 서버로부터 MIDlet을 다운받게 해놓는 작업은 무척 중요하죠.



저번 강좌에서 MIDP환경을 마련해주었지만

우리가 만든 프로그램에 누군가가 접근을 할때 다들 핸드폰으로 하지

도스창에서 MIDP 어쩌고 이런식으로 실행을 하지는 않기 때문입니다.

그럼 사용자가 핸드폰에서 접근을 했을경우 우리가 만들어 놓은 어플리케이션을 다운 받아

사용자의 핸드폰에 설치가 되도록 해주어야 하는데 이것을 위해 class파일과 같이 쓰이는 파일들을

압축해 놓은 파일이 바로 .jar 파일입니다. 이번강좌에서는 이 .jar파일을 만들어 보는것을 알아보겠습니다.

(이것을 좀 더 있어보이게-_- 패키지화 한다고 표현을 합니다)



본 강좌에서 만든 .jar파일은 에뮬레이터에서 잘 동작한다면

VM이 탑재된 실제 폰에서도 거의 문제 없이 실행될 것입니다..



자 일단 지난 강좌에서 사용했던 TextBoxDemo.java파일을 준비해봅시다..

아니..javac로 컴파일하고 preverify로 검증까지 마친 TextBoxDemo.class 파일을 준비해봅시다.

이제 이 파일을 가지고 우린 패키지를 만들 것입니다.



패키지를 만드는 순서는 다음과 같습니다.



1. 웹서버를 설치하고 설정한다.

2. MANIFEST파일을 작성한다.

3. class파일과 사용되는 이미지, 그리고 2번에서 만든 MANIFEST파일을 .jar로 압축한다.

4. JAD파일을 작성한다.

5. JAD파일과 JAR파일을 서버에 올린다.




이상입니다.



자 우선 웹서버를 설정해 봅시다.

우리는 서버에 JAD파일과 JAR파일을 올릴 것입니다. 그러면 이 파일들에 대한 MIME TYPE이 필요하겠지요.

WML과 비슷하네요...아무튼 다음과 같이 추가해줍시다(IIS, APARCHE, JRUN등 상관없습니다)



AddType text/vnd.sun.j2me.app-descriptor .jad

AddType application/java-archive .jar




구체적으로 설명 안드려도 MIME TYPE추가정도는 다 하실줄 아시죠?

자 이제 순서 1번은 간단하게 끝냈습니다. 2번으로 넘어가 보지요..



이번에는 .jar파일에 포함될 MANIFEST파일을 만들어야 합니다.

이 파일은 확장자가 .mf인 파일로 JAR파일의 내용에 대한 설명서 입니다.

우리는 TextBoxDemo.mf 라는 파일로 만들어 봅시다.



- TextBoxDemo.mf -

MIDlet-Name: TextBoxDemo // MIDlet 이름

MIDlet-Version: 1.0.0

MIDlet-Vendor: CYPUS, Inc

MicroEdition-Profile: MIDP-1.0

MicroEdition-Configuration: CLDC-1.0

MIDlet-1: TextBoxDemo,,TextBoxDemo // MIDlet 이름과 클래스명.



이상이구요

MIDlet-1에서 중간에 공백이 있는것은 사용되는 아이콘이 없음을 나타냅니다..

머 복사해서 하셔도 되구요..앞으로도 거의 이 틀을 따를 것입니다.

수정되는건 MIDlet-Name 과 MIDlet-1 밖에 없겠지요.



자, 이제 다음단계로 넘어와서 .jar파일을 만들어 볼까요? 다음과 같이 실행해 봅시다.



jar cvfm TextBoxDemo.jar TextBoxDemo.mf TextBoxDemo.class



그럼 추가된 증명 어쩌고 저쩌고 하면서 메세지가 나오고 TextBoxDemo.jar파일이 생성될 것입니다.

어예 신납니다~ 술술 잘 풀리죠?



자 이제 거의 다 해갑니다. 이번엔 .jad 파일을 만들어 보겠습니다.

JAD파일은 MANIFEST파일과 형태는 비슷하지만 목적은 전혀 다릅니다.

MANIFEST파일이 JAR 파일 내부를 설명하는데 비해

JAD파일은 모바일 기기에서 그 JAR 파일을 다운 받을 수 있도록 정보를 제공하기 위한 파일입니다.



즉, 모바일기기에서 어떤 JAR 파일을 다운받기 전에 JAD파일의 내용을 먼저 해석하여

다운받고자 하는 JAR 파일이 모바일 기기에 적합한지, 그리고 그 JAR파일이

어디에 위치하고 있는지 등의 정보를 얻게 됩니다.



그럼 한번 만들어 볼까요? 당근 확장자는 .jad입니다.



- TextBoxDemo.jad -

MIDlet-1: TextBoxDemo,,TextBoxDemo // MIDlet이름과 클래스명

MIDlet-Jar-Size: 1010 // jar파일 용량

MIDlet-Jar-URL:
http://211.222.216.33/TextBoxDemo.jar // jar파일 위치

MIDlet-Name: TextBoxDemo // MIDlet 이름

MIDlet-Vendor: CYPUS, Inc.

MIDlet-Version: 1.0.0



이렇게 만들었습니다. jad파일은 옵션이 훨씬 많이 있는데요.

우선은 간단하게 이렇게만 구성해 봅시다. 물론 용량이나 jar파일 위치등은

여러분들의 환경에 따라 직접 수정해주시구요..



자 이제 모든 과정이 완료되었습니다.

자신의 웹서버에 이 jad파일과 아까 압축한 jar 파일을 올려봅시다.



그리고 이제 직접 실행을 해 봅시다.



midp -transient http://211.222.216.33/TextBoxDemo.jad



-transient옵션은 JAD,JAR파일을 서버에서 다운받아 실행하고자 할때

추가해 주는 옵션으로 JAD파일이 위치한 URL을 지정해주면 됩니다.

올바르게 하셨다면 오른쪽 그림처럼

서버에 올리지 않고 실행했을때와 동일한 화면이 출력 됩니다.



잘 되시나요?



그럼 이제 WML같은 페이지에서 http://211.222.216.33/TextBoxDemo.jad
같은

어플리케이션으로의 링크만 잘 걸어준다면(단순 링크와는 또 조금 다르지만)

자바 어플리케이션의 사용자의 핸드폰에 다운로드되어

설치되게끔 하는 것은 그리 어렵지 않겠지요?



자 그럼 이번에는 MIDP Wireless Toolkit에 대해 간단히 알아보겠습니다.

왜 간단히 알아보느냐..이렇게 프로그래밍을 편리하게 해주는 툴킷은

프로그래밍에 완전히 익숙해진다음에 쓰는게 순리라고 하더군요..저도 그렇게 생각하구요.

이런 툴에만 익숙해져있으면 직접 코딩해야할 상황이 생길때는 아무것도 할수 없게 되버리거든요..

아무튼..간단하게 알아봅시다.(여기서도 TextBoxDemo.java소스를 사용합니다)



우선 다운로드 받은 MIDP Wireless Toolkit을 설치하고 KTOOLBAR를 실행시켜보세요.

자바로 짜여진-그래서 속도가 좀 느린- 툴킷 프로그램이 실행됩니다.



첫 실행후 손댈수 있는것은 New Project와 Open Project..

또 한번 테스트로 TextBoxDemo라는 프로젝트를 만들어보도록 하지요. New Project를 클릭~!



프로젝트네임과 Class Name을 입력하라고 나옵니다.

프로젝트네임은 우리가 쉽게 알수 있도록 만드는 프로젝트의 이름을 부여하면 되는것이고

ClassName은 TextBoxDemo처럼 사용되는 class파일의 파일명을 써주면됩니다.

보통 같은 이름을 부여한다고 하더군요..그럼 우리도 두군데 모두 TextBoxDemo라고 써 넣어봅시다.



그럼 Settings for Project "TextBoxDemo"라는 창이 뜹니다.

이것은 바로 우리가 아까 수동으로 만들어주었던 jad파일을 만들어주는 창입니다.

벌써 수동으로 해야할것 하나가 줄었지요?

물론 jar 파일사이즈등은 jar파일을 만든후에 조금 손봐줘야 하겠지만요.

OK를 눌러서 jad파일을 만들어봅시다.







이와 같은 화면이 뜹니다. 영어로 설명된 것 처럼

우리가 만들고자 하는 프로젝트를 관리할수 있는 폴더가 생겼습니다.

바로 툴킷이 설치된 폴더(저는 c:\j2mewtk네요) 밑에 apps라는 폴더 밑에 생겼습니다.

즉 TextBoxDemo라는 프로젝트를 새로 만들었더니

c:\J2mewtk\apps\TextBoxDemo 라는 폴더가 생긴 것이구요.

또 이 폴더의 하위폴더중 src에 만든 자바소스를 넣으라고 가르켜 주고있네요..^^

여러분이 직접 가보시면 아시겠지만 apps\TextBoxDemo\bin 폴더에는

.jad파일과 MANIFEST파일이 생성되있습니다. 자 이제 어떤점이 편한지 느껴지시죠?



아무튼 비어있는 src폴더에 우리가 작성했던 TextBoxDemo.java를 복사해놓은후

Build를 클릭해봅시다~ 그러면...히야~ 감탄사가 나오죠?

자동으로 컴파일과 preverify(검증)까지 다 되어 버립니다.

class 파일은 apps\TextBoxDemo\classes라는 폴더에 위치하게 되구요.



그렇다면 run만 누르면 실행이 되는건가? 정말?

네...정말입니다. 눌러보세요..자동으로 MIDP창이 뜨면서 실행이 됩니다.

우아...툴킷을 사용했더니 정말 간단하지요?

(처음에 Select one to launch라고 실행할 것을 선택하는것이 뜨는 이유는..

한 프로젝트에 실행되는 MIDlet이 꼭 하나이기만 한것은 아니기 때문입니다..^^)



아무튼 프로그래밍에 많은 도움을 주는 툴킷이지만

프로그래밍에 완전히 익숙해질때까지는 수동으로 코딩을 하는 습관을 들이시는게

많이 도움이 되리라 생각됩니다.



자..이제 환경설정도 잘 되었고 실행도 잘 할줄 알게 되었습니다.

이제 남은건 문법공부밖에 없군요~~ ^^;; 열심히 해봅시다~~

 

관련글 더보기