本文試圖利用前一篇j2me入門中部署的環境,採用eclipse+carbide.j+S60 SDK for java
開發一個在Nokia S60平臺上運行的示例程序,併發布在tomcat中,通過OTA技術來下載和運行。
(1)在eclipse中創建java項目,選擇MIDP Project(Nokia SDK plug-in)。
(2)新建一個MyHelloMIDlet.java、如下:
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
public class HelloWorldPlusMIDlet extends MIDlet {
private TextScreen textScreen;
private TextEditor textEditor;
private Display display;
public void startApp() {
if (display == null) {
display=Display.getDisplay(this);
textScreen = new TextScreen(this, "First Midlet");
display.setCurrent(textScreen);
}
}
public void pauseApp() {
}
public void destroyApp(boolean unconditional) {
}
public void exitRequested(){
destroyApp(false);
notifyDestroyed();
}
public void textEditorDone(String string) {
if (string != null) {
textScreen.setCurrentText(string);
}
}
display.setCurrent(textScreen);
}
}
public void textEditorRequested() {
String currentText = textScreen.getCurrentText();
if (textEditor == null) {
textEditor = new TextEditor(this, currentText);
} else {
textEditor.setText(currentText);
}
display.setCurrent(textEditor);
}
}
(3)新建文件TextScreen.java和TextEditor.java,從Nokia SDK的S60 examples裏有個例子
HelloWorldPlus裏面有這樣兩個例子,稍微改動以下就行了。
(4)因爲項目默認生成一個ant文件,我們這裏就採用build.xml文件,改動一下就行了。
改動處如下:
//改成MyHelloMidlet,注意這裏一定要與Midlet類名一致,否則jad找不到執行的Midlet類
<property name="application" value="MyHelloMIDlet" />
//改成包名,此處沒有使用包
<property name="package.dir.dot" value="yfhuang." />
//改成包的完整路徑,此處沒有使用包,所以....
<property name="package.dir.slash" value="yfhuang/" />
<target name="run_with_jad" depends="package">
<antcall target="internal_run">
<antcall target="internal_run">
//此處一定要改爲S60Emulator,否則ant會運行報錯
<param name="device" value="S60Emulator" />
</antcall>
</target>
<param name="device" value="S60Emulator" />
</antcall>
</target>
如果沒有真正的S60設備,註釋掉以下行
<!--property name="ndsj2me.device" value="S60 3rd Edition FP1 SDK for MIDP" /-->
(5) 運行ant 任務run_with_jad,應該可以在模擬器中看到First Midlet的內容了。
(6) 找到dist目錄下的jad文件和MyHelloMIDlet.jar文件,把它發佈到Tomcat中去,步驟如下:
6.1 使用tomcat 5.0.16,已經默認支持jad jar wml類型
6.2 拷貝dist的MyHelloMIDlet.jar和MyHelloMIDlet.jad文件到tomcat的webapps的ROOT目錄下
6.3 更改MyHelloMIDlet.jad中的jar爲絕對路徑,如http://localhost/MyHelloMIDlet.jar
6.3 編寫一個簡單的wml文件,放到webapps的ROOT下,文件內容如下:
<?xml version="1.0"?>
<!DOCTYPE wml PUBLIC "_//WAPFORUM//DTD WML 1.1//EN"
"http://www.wapforum.org/DTD/wml_1.1.xml">
<wml>
<card title= "Welcome" id="main">
<p>Software center:</p>
<p align="left">
<a href="MyHelloMIDlet.jad">
MyHelloMIDlet</a></p>
</card>
</wml>
<!DOCTYPE wml PUBLIC "_//WAPFORUM//DTD WML 1.1//EN"
"http://www.wapforum.org/DTD/wml_1.1.xml">
<wml>
<card title= "Welcome" id="main">
<p>Software center:</p>
<p align="left">
<a href="MyHelloMIDlet.jad">
MyHelloMIDlet</a></p>
</card>
</wml>
命名爲myhellomidlet.xml
6.4 這時運行模擬器,打開URL : http://localhost/myhellomidlet.wml就會出現到MyHelloMIDlet
的鏈接,打開該鏈接發現是jad文件,就會激活應用程序管理器安裝其中指定的jar文件(因爲目前jad
已在本地,由應用程序管理器來識別,所以jad中指定的jar文件一定要用絕對路徑。)
6.5 待應用程序安裝完畢後,如果用的是S60的模擬器,可以到已經安裝的應用程序(installed)
中看到MyHelloMIDlet了,運行它,就會出現First Midlet的字樣,而且是可編輯的。