J2ME 簡介
J2ME (Java 2 Platform, Micro Edition) 是 Java 2 平台三大版本之一,針對資源受限裝置(手機、PDA、機頂盒、車載導航等)優化的執行環境,將 Java「撰寫一次,到處執行」特性延伸至移動嵌入式領域。
開發環境建置三步驟
- J2SE SDK 1.3(JDK 1.3):J2ME WTK 運行基礎。建議 1.3 版(1.2 太舊、1.4 不穩)
- J2ME Wireless Toolkit (WTK) 1.0.3:官方免費開發工具,含模擬器、編譯器、打包工具。安裝時指定 JDK 目錄
- Tomcat 3.2.3/4.0:伺服器端支援(JSP/Servlet),手機端資源有限,商業邏輯建議放伺服器
開發工具横向評測
| 工具 | 優點 | 缺點 | 推薦指數 |
| J2ME WTK + EditPlus/UltraEdit | 免費、輕量、標準相容、適合入門與專家 | 無視覺化設計器 | ★★★★★ |
| Eclipse + MTJ/ProGuard | 免費、功能強、生態豐富 | 設定較複雜 | ★★★★☆ |
| IBM VisualAge Micro Edition | IBM 出品 | 介面複雜、非綠色、資源佔用大 | ★☆☆☆☆ |
| CodeWarrior for Java | IDE 類 Visual Studio、整合度高 | 收費、僅 30 天試用 | ★★★☆☆ |
| JBuilder + 行動版 | Borland 老牌 IDE | 未實測 | ★★★☆☆ |
結論:J2ME WTK + JDK + 編輯器 是最佳性價比組合。
模擬器選擇策略
- WTK 內建 6 種模擬器:Default Color/Gray Phone、Minimum Phone、Motorola i85s、PalmOS、RIM Java Handheld
- 原則:針對目標裝置選對應模擬器
- 實務:RIM Java Handheld 螢幕大、除錯舒適,建議設為預設
- 設定:開始選單 → J2ME WTK → Default Device Selection
KToolbar 專案操作流程
- 啟動 KToolbar(WTK 簡易 IDE)
- New Project:專案名
fancy,MIDlet 類別 fancy.test.HelloWorld
- 自動建立目錄結構:
apps/fancy/src/ — 源碼
apps/fancy/res/ — 資源檔(圖片等)
apps/fancy/classes/ — 編譯輸出
apps/fancy/bin/ — 打包輸出(JAR/JAD)
- 編輯
src/fancy/test/HelloWorld.java
- Build 編譯 → Run 啟動模擬器執行
- Project → Package 產生發布用 JAR/JAD
HelloWorld 完整原始碼
package fancy.test;
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
public class HelloWorld extends MIDlet implements CommandListener {
private Display display;
private Form form;
private Command exitCommand = new Command("Exit", Command.EXIT, 1);
public HelloWorld() {
display = Display.getDisplay(this);
}
protected void startApp() {
form = new Form("Hello World");
form.append("Hello World!");
form.addCommand(exitCommand);
form.setCommandListener(this);
display.setCurrent(form);
}
protected void pauseApp() {
display.setCurrent(null);
form = null;
}
protected void destroyApp(boolean unconditional) {
notifyDestroyed();
}
public void commandAction(Command c, Displayable d) {
if (c == exitCommand) {
destroyApp(false);
}
}
}
MIDlet 生命週期核心
| 方法 | 觸發時機 | 典型操作 |
| startApp() | 啟動、從暫停恢復 | 初始化 UI、載入資源、顯示畫面 |
| pauseApp() | 來電、切換應用 | 釋放非必要資源、暫停動畫/音樂 |
| destroyApp() | 用戶退出、系統回收 | 儲存狀態、釋放所有資源、notifyDestroyed() |
下一步學習方向
- 高階 UI 元件:Form、List、TextBox、ChoiceGroup、Alert
- 低階 UI:Canvas、Graphics 自繪、遊戲迴圈
- RMS 持久化儲存
- 網路通訊:HTTP、Socket、Datagram
- 多媒體:MMAPI 音訊/視訊播放
- 上一篇文章: JBuilder 9 整合 Struts 1.1 完整設定指南
- 下一篇文章: Java 開發工具與環境問答精選:新手避坑指南
Copyright ©
程式碼之家 All Rights Reserved