J2ME (Java 2 Micro Edition) 曾是功能機時代移動應用主流平台 (MIDP 1.0/2.0, CLDC 1.0/1.1)。雖已被 Android/iOS 取代,但其受限環境下的工程思想 (生命週期管理、Canvas 繪圖、RMS 持久化、網絡協議適配) 仍具嵌入式/物聯網開發參考價值。
| 組件 | 版本/來源 | 安裝路徑建議 |
|---|---|---|
| JDK | 1.2+ (必含 javac) | C:\JDK1.2 |
| CLDC | RI (Reference Implementation) | C:\j2me\CLDC |
| MIDP | RI | C:\j2me\MIDP |
下載鏈接 (歷史):java.sun.com/j2se、sun.com/software/communitysource/j2me、java.sun.com/products/midp。
REM autoexec.bat 或 系統環境變量 SET JAVA_HOME=C:\JDK1.2 SET PATH=%PATH%;%JAVA_HOME%\BIN;C:\j2me\MIDP\bin
驗證:CMD 輸入 midp 彈出模擬器窗口即成功。
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
public class HelloMIDlet extends MIDlet {
private Display display;
private Form form;
public HelloMIDlet() {
display = Display.getDisplay(this);
form = new Form("Hello");
form.append(new StringItem(null, "Hello MIDP World!"));
}
protected void startApp() { display.setCurrent(form); }
protected void pauseApp() {}
protected void destroyApp(boolean unconditional) {}
}
MIDlet-Name: HelloMIDlet MIDlet-Version: 1.0.0 MIDlet-Vendor: Sun Microsystems MIDlet-Description: A Simple Example MIDlet-Info-URL: https://java.sun.com/j2me/ MIDlet-Jar-URL: hello.jar MIDlet-Jar-Size: 1063 MicroEdition-Profile: MIDP-1.0 MicroEdition-Configuration: CLDC-1.0 MIDlet-1: HelloMIDlet,, HelloMIDlet
REM 1. 編譯 (需指定 -bootclasspath 為 MIDP 類庫) javac -d . -bootclasspath C:\j2me\MIDP\classes HelloMIDlet.java REM 2. 預驗證 (CLDC 要求字節碼驗證) preverify -classpath C:\j2me\MIDP\classes;. HelloMIDlet REM 生成的類在 .\output\ 目錄 REM 3. 打包 JAR cd output jar cf hello.jar HelloMIDlet.class REM 4. 運行 (模擬器加載 JAD) midp -descriptor hello.jad
startApp() (啟動/恢復)、pauseApp() (來電/後台)、destroyApp() (退出/卸載)。狀態機由 AMS (Application Management Software) 控制。preverify 離線驗證並在類文件添加屬性標記。getKeyStates()),遊戲開發核心。HttpConnection、SocketConnection、DatagramConnection (GCF 統一接口)。\MotoSDK,編譯命令 compileAll、運行 runEmul。| J2ME | Android | 嵌入式 Linux/RTOS |
|---|---|---|
| MIDlet | Activity / Service | Task / Thread |
| Display/Canvas | View / SurfaceView / Canvas | Framebuffer / DRM / GPU |
| RMS | SharedPreferences / SQLite / Room | SQLite / LittleFS / KV |
| GCF Connection | HttpURLConnection / OkHttp / Socket | lwIP / sockets / MQTT |
| 預驗證 | ART AOT / JIT | 交叉編譯 + 靜態分析 |
回顧 J2ME,是為了理解「在極度受限資源下如何構建完整應用框架」的工程智慧。