經實測,**Eclipse 3.5.1 + Polish 2.1.3** 整合失敗 (Preferences 無 J2ME Polish 選單)。改用以下穩定組合:
eclipse-SDK-3.4.1-win32.zipD:\Program Files\eclipseD:\workspaceD:\Program Files\J2ME-Polish2.0.1C:\WTK2.5.2)D:\Program Files\eclipse)Help → Software Updates → Available Software → Add Sitehttps://www.j2mepolish.org/meposeInstall → 重啟 EclipseWindow → Preferences 應出現 J2ME Polish 選單File → New → Other → J2ME Polish ProjectHelloPolishPolishHello,Package: com.polish.learningbuild.xml 調整)HelloPolish/
├── build.xml # Ant 建構腳本 (核心)
├── build/ # 輸出目錄
├── resources/ # 共用資源 (含 polish.css)
├── src/
│ └── com/polish/learning/
│ └── PolishHello.java
└── devices.xml # 裝置定義 (可選)
package com.polish.learning;
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Form;
import javax.microedition.lcdui.StringItem;
import javax.microedition.midlet.MIDlet;
import javax.microedition.midlet.MIDletStateChangeException;
import de.enough.polish.util.Locale;
public class PolishHello extends MIDlet {
private Form myScreen;
private Display display;
protected void startApp() throws MIDletStateChangeException {
this.myScreen = new Form(null);
// #style stringItem
StringItem helloPolishItem = new StringItem(null, "Hello Polish!");
this.myScreen.append(helloPolishItem);
this.display = Display.getDisplay(this);
this.display.setCurrent(this.myScreen);
}
protected void pauseApp() {}
protected void destroyApp(boolean unconditional) throws MIDletStateChangeException {}
}
關鍵語法:// #style stringItem 是預處理指令,建構時會依 CSS 套用樣式至該元件。
.stringItem {
margin-top: 2;
padding: 2;
padding-left: 5;
font {
color: black;
size: medium;
style: bold;
}
layout: left;
}
預設 build.xml 的 <jad> 區塊缺少 MIDlet-1 屬性,導致模擬器無法啟動。請在 <jad> 內加入:
<jad>
<attribute name="Nokia-MIDlet-Category" value="Game" if="polish.group.Series40"/>
<!-- 新增以下一行 -->
<attribute name="MIDlet-1" value="HelloPolish,,com.polish.learning.PolishHello"/>
</jad>
格式說明:value="MIDlet名稱,圖示路徑(可空),完整類別名",圖示路徑為空時保留兩個逗號 ,,,不可省略。
右鍵 PolishHello.java → Run As → J2ME Polish MIDlet
com.sun.tools.javac.Main is not on the classpath原因:JAVA_HOME 指向 JRE 而非 JDK。
快速修復:將 JDK lib/tools.jar 複製至 JRE lib/ 目錄:
copy "C:\Program Files\Java\jdk1.6.0_11\lib\tools.jar" "C:\Program Files\Java\jre6\lib\"
重啟 Eclipse 即可。
NullPointerException 或 MIDlet 無法載入原因:MIDlet-1 屬性值格式錯誤 (逗號數量不符)。
正確格式:
value="HelloPolish,,com.polish.learning.PolishHello"
devices.xml 匯入真實裝置規格build.xml 的 <obfuscate> 整合 ProGuard<locale> 實現多語系建構完成上述設定,您即擁有整合 Eclipse IDE 的 J2ME Polish 開發環境,可高效進行多裝置、多語系的 J2ME 應用開發。