| 指令 | 啟動裝置皮膚 | 輸出結果 |
runEmul HelloMIDlet | 預設通用模擬器 |  |
runMotoi1000 HelloMIDlet | Motorola i1000 |  |
runMotoiDEN HelloMIDlet | iDEN 平台通用 |  |
runStarTac HelloMIDlet | StarTac 翻蓋機 |  |
runMyDevice HelloMIDlet | 自訂裝置 (需先建 .props) | 錯誤:找不到 mydevice.props |
命令列完整參數:任意目錄啟動任意皮膚
假設 SDK 安裝於 D:\MotoSDK,MIDlet 類別於 d:\jdk1.3.0_01\my\HelloMIDlet,當前目錄為後者。
核心啟動模板
java -Djava.library.path=D:\MotoSDK\lib ^
-classpath D:\MotoSDK\bin\Emulator.jar;D:\MotoSDK\bin\ConfigTool.jar ^
com.mot.tools.j2me.emulator.Emulator ^
-classpath .;D:\MotoSDK\lib ^
[ -deviceFile resources\裝置.props ] ^
javax.microedition.midlet.AppManager ^
HelloMIDlet -JSA 1 1
關鍵細節:
- 第一個
-classpath **有空格** 分隔路徑
- 第二個
-classpath **無空格** 緊接路徑 (Emulator 類別載入器要求)
-JSA 1 1:Java 執行環境參數,保持固定
四大標準皮膚完整指令
REM 1. 通用模擬器 (預設 defaultdevice.props)
java -Djava.library.path=D:\MotoSDK\lib ^
-classpath D:\MotoSDK\bin\Emulator.jar;D:\MotoSDK\bin\ConfigTool.jar ^
com.mot.tools.j2me.emulator.Emulator ^
-classpath .;D:\MotoSDK\lib ^
javax.microedition.midlet.AppManager ^
HelloMIDlet -JSA 1 1
REM 2. Motorola i1000
java ... ^
-deviceFile resources\Motorolai1000.props ^
...
REM 3. iDEN 平台
java ... ^
-deviceFile resources\MotorolaiDENPlatform.props ^
...
REM 4. StarTac
java ... ^
-deviceFile resources\StarTac.props ^
...
自訂裝置皮膚
REM 使用絕對路徑 .props 檔
java ... ^
-deviceFile D:\MyDevices\MyCustomPhone.props ^
...
REM 或放入 SDK resources 目錄後使用相對路徑
java ... ^
-deviceFile resources\MyCustomPhone.props ^
...
常見啟動失敗排查
| 錯誤訊息 | 原因 | 解決 |
| Error loading property file: resources/defaultdevice.props | 未將 D:\MotoSDK\bin\resources 複製到當前工作目錄 | 複製整個 resources 目錄到 MIDlet 所在目錄,或使用絕對路徑 |
| NoClassDefFoundError: com/mot/tools/j2me/emulator/Emulator | 第一個 -classpath 路徑錯誤或缺少 Emulator.jar | 檢查 SDK 安裝完整性,路徑區分大小寫 |
| MIDlet class not found | 第二個 -classpath 未包含 MIDlet 類別目錄 | 確保 -classpath .;D:\MotoSDK\lib 中的 . 指向含 package 結構的根目錄 |
自訂裝置描述檔 (.props) 關鍵屬性
# 螢幕尺寸
screen.width=176
screen.height=220
screen.colorDepth=16
screen.isColor=true
# 按鍵映射 (keyCode 對應)
key.UP=38
key.DOWN=40
key.LEFT=37
key.RIGHT=39
key.FIRE=13
key.SOFT_LEFT=...
key.SOFT_RIGHT=...
# 記憶體限制
heap.size=2097152
jar.size.max=65536
# 網路/安全
supports.https=true
supports.socket=true
Configuration Editor GUI 工具可視化編輯此檔,避免手寫錯誤。
結語
掌握命令列完整參數,意味著你能:
- 在無 IDE 環境的建構機器上自動化測試多裝置皮膚
- 將模擬器整合進 Ant/Make/早期 CI 腳本
- 為客戶端定製專屬裝置描述檔,精準模擬目標機型行為
- 深入理解 Java 類別載入器、原生庫路徑、模擬器架構的底層運作
這份「原始人」級的命令列技能,是現代 Gradle/Android Emulator/ADB 自動化測試基礎設施的遠古祖先。理解它,才能真正掌握工具鏈而非被工具鏈奴役。
- 上一篇文章: Motorola iDEN J2ME 開發實戰(四):除錯、中文支援與開發工具鏈
- 下一篇文章: Motorola iDEN J2ME 開發實戰(二):MIDlet 結構、編譯預驗證與模擬器運行
Copyright ©
程式碼之家 All Rights Reserved