首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 程式設計入門

J2ME MIDP 開發環境搭建與 HelloMIDlet 完整實戰指南

     編輯:Java 程式設計入門

前言:J2ME 歷史定位

J2ME (Java 2 Micro Edition) 曾是功能機時代移動應用主流平台 (MIDP 1.0/2.0, CLDC 1.0/1.1)。雖已被 Android/iOS 取代,但其受限環境下的工程思想 (生命週期管理、Canvas 繪圖、RMS 持久化、網絡協議適配) 仍具嵌入式/物聯網開發參考價值。

一、環境準備 (Windows 推薦)

組件版本/來源安裝路徑建議
JDK1.2+ (必含 javac)C:\JDK1.2
CLDCRI (Reference Implementation)C:\j2me\CLDC
MIDPRIC:\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 彈出模擬器窗口即成功。

三、HelloMIDlet 開發全流程

1. 源碼 (HelloMIDlet.java)

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) {}
}

2. JAD 描述文件 (HelloMIDlet.jad)

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

3. 編譯、預驗證、打包、運行命令序列

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

四、關鍵技術點解析

  1. MIDlet 生命週期:startApp() (啟動/恢復)、pauseApp() (來電/後台)、destroyApp() (退出/卸載)。狀態機由 AMS (Application Management Software) 控制。
  2. CLDC 預驗證:設備端 JVM 極簡,無字節碼驗證器,構建時 preverify 離線驗證並在類文件添加屬性標記。
  3. RMS (Record Management System):簡易鍵值持久化存儲,類似輕量級嵌入式數據庫。
  4. Canvas / GameCanvas:底層繪圖 API,支援雙緩衍、按鍵輪詢 (getKeyStates()),遊戲開發核心。
  5. 網絡協議:HttpConnection、SocketConnection、DatagramConnection (GCF 統一接口)。

五、Motorola SDK 替代方案 (文檔另一版本)

  • 專用模擬器、真機調試工具、簽名發布流程。
  • 安裝需口令,目錄 \MotoSDK,編譯命令 compileAll、運行 runEmul。

六、現代映射:J2ME 概念在 Android/嵌入式中的對應

J2MEAndroid嵌入式 Linux/RTOS
MIDletActivity / ServiceTask / Thread
Display/CanvasView / SurfaceView / CanvasFramebuffer / DRM / GPU
RMSSharedPreferences / SQLite / RoomSQLite / LittleFS / KV
GCF ConnectionHttpURLConnection / OkHttp / SocketlwIP / sockets / MQTT
預驗證ART AOT / JIT交叉編譯 + 靜態分析

回顧 J2ME,是為了理解「在極度受限資源下如何構建完整應用框架」的工程智慧。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved