用现代工具链写 Java ME 应用:不需要上古 SDK
来源:voxelmanip.se — 2026-10-24
📋 概述
Java ME(J2ME)是功能机时代的平台,如今基本算死掉的技术,但很多人抽屉里还躺着一台老手机。作者给出一条完全不碰 Sun 老 SDK 的路:用 OpenJDK 8 加 MicroEmulator 提供的 stub jar 编译,用 ProGuard 做预校验,手工写 MIDlet 清单打进 JAR,再交给真机或模拟器。整套流程是 javac -source 1.3 -target 1.1 加 -bootclasspath 指向 CLDC 1.1 与 MIDP 2.0 的 API jar,产物是 bytecode 45.3,正是 MIDP 2.0 要的格式。
🔑 核心要点
- 工具只需三样:OpenJDK 8、MicroEmulator 的 cldcapi11.jar 与 midpapi20.jar、ProGuard(做预校验)
- 编译参数是关键:-source 1.3 -target 1.1 生成 bytecode 45.3,这是 MIDP 2.0 要求的版本
- 必须用 -bootclasspath 覆盖 JDK 自带的 Java SE 库,否则会链到功能机上不存在的 API
- JAR 清单里 MIDlet-1 是逗号分隔三段:显示名、图标路径、入口类全名;还要写明 CLDC-1.1 与 MIDP-2.0
- 选 MIDP 2.0(2002 年)而不是 1.0,是兼容性与功能的折中,1.0 缺一些重要能力
- 整个过程不需要任何来自 Sun 的老 SDK,纯现代环境可复现
💡 金句
You will need some distribution of OpenJDK 8, such as the Temurin builds for various platforms.
👍 0
👎 0
← 返回 Lobsters 首页