入手 Sony Ericsson T628 (CLDC 1.0 / MIDP 1.0),下載廠商 SDK、配置 EclipseME、真機運行,記錄全過程避坑點。
PATH/CLASSPATH。semc_J2ME_sdk_2_1_5.exe),**安裝後無需配置環境變量**。plugins 目錄)。Window → Preferences → J2ME → Device Management → Import 選中 SDK 目錄下的 WTK → 自動識別設備 (T628 等)。File → New → Project → J2ME → J2ME Midlet Suite,項目名 HelloWorld。Right-click project → New → Other → J2ME → J2ME Midlet,類名 Helloworld,包 com.example。Right-click project → J2ME → Create Package 生成 JAR/JAD。Run As → J2ME Midlet (模擬器) 或藍牙發送至 T628 真機。Helloworld.javapackage com.example;
import javax.microedition.lcdui.*;
import javax.microedition.midlet.*;
public class Helloworld extends MIDlet implements CommandListener {
private Display display;
private Form mainForm;
private StringItem stringItem;
private Command exitCommand = new Command("Exit", Command.EXIT, 1);
public Helloworld() {
super();
}
protected void startApp() throws MIDletStateChangeException {
initMIDlet();
display.setCurrent(mainForm);
}
private void initMIDlet() {
display = Display.getDisplay(this);
mainForm = new Form("關於");
stringItem = new StringItem(null, null);
stringItem.setText("這是我的第一個 J2ME 程序!");
mainForm.append(stringItem);
mainForm.addCommand(exitCommand);
mainForm.setCommandListener(this);
}
protected void pauseApp() {}
protected void destroyApp(boolean arg0) throws MIDletStateChangeException {
System.out.println("exit the application");
}
public void commandAction(Command cmd, Displayable disp) {
if (cmd == exitCommand) {
try { destroyApp(false); notifyDestroyed(); }
catch (MIDletStateChangeException e) { e.printStackTrace(); }
}
}
}
| EclipseME 平台選項 | 對應設備能力 | T628 真機結果 |
|---|---|---|
| Sony Ericsson J2ME SDK (WTK 1.0.4) Platform | CLDC 1.0 / MIDP 1.0 | ✅ 正常安裝運行 |
| Sony Ericsson J2ME SDK (WTK 2.1) Platform | CLDC 1.1 / MIDP 2.0 | ❌ 模擬器可跑,真機提示「無效應用程序」 |
鐵律:**真機支持什麼配置,項目就必須選對應平台**。WTK 2.1 編譯的 class 文件含 MIDP 2.0/API/驗證屬性,CLDC 1.0 設備拒絕加載。
.jad (手機會自動下載同名 .jar)。從開箱到 HelloWorld 跑通真機,**核心只有三步**:裝對 SDK、選對平台、傳對文件。EclipseME 讓開發體驗接近 Java SE,專注業務邏輯而非構建腳本。下一步嘗試:Canvas 繪圖、RMS 存檔、HTTP 聯網、T628 專有 API (如紅外、鍵盤燈)。