基于 Docker 的 J2ME 开发环境构建方案

学习记录 · 25 天前

基于 Docker 的 J2ME 开发环境构建方案(虽然 J2ME 属于较旧技术栈,但可通过容器化实现环境隔离):

# Dockerfile.j2me
FROM ubuntu:20.04

# 安装基础依赖
ENV DEBIAN_FRONTEND=noninteractive
RUN apt-get update && \
    apt-get install -y \
    wget \
    unzip \
    ant \
    openjdk-8-jdk \  # J2ME 需要旧版 JDK
    xvfb \            # 用于模拟显示
    libxtst6

# 安装 WTK 2.5.2 (需自行准备安装包)
COPY sun_java_wireless_toolkit-2.5.2_linux.bin /tmp/
RUN chmod +x /tmp/sun_java_wireless_toolkit-2.5.2_linux.bin && \
    echo "yes" | /tmp/sun_java_wireless_toolkit-2.5.2_linux.bin && \
    rm /tmp/sun_java_wireless_toolkit-2.5.2_linux.bin

# 配置环境变量
ENV WTK_HOME /root/Java_ME_platform_SDK_3.0
ENV PATH $PATH:$WTK_HOME/bin
ENV JAVA_HOME /usr/lib/jvm/java-8-openjdk-amd64

# 安装 MicroEmulator(可选)
RUN wget https://sourceforge.net/projects/microemulator/files/microemulator/2.0.4/microemulator-2.0.4.zip && \
    unzip microemulator-2.0.4.zip -d /opt && \
    rm microemulator-2.0.4.zip

WORKDIR /app

使用说明:

# 构建镜像
docker build -t j2me-dev -f Dockerfile.j2me .

# 运行开发容器(挂载代码目录)
docker run -it --rm \
  -v $(pwd)/my-j2me-project:/app \
  -v /tmp/.X11-unix:/tmp/.X11-unix \
  -e DISPLAY=$DISPLAY \
  j2me-dev bash

典型项目结构示例:

my-j2me-project/
├── src/
│   └── HelloMidlet.java
└── build.xml

验证环境:

# 编译示例项目
ant compile

# 打包 JAR
ant package

# 使用模拟器运行
emulator -Xdescriptor:bin/HelloMidlet.jad

注意事项:

  1. WTK 安装文件需自行从 Oracle 历史存档获取
  2. 建议配合 Ant 实现自动化构建
  3. 图形界面需要 X11 转发支持
  4. 现代 IDE(如 VSCode)可通过 Remote-Containers 扩展连接容器
Theme Jasmine by Kent Liao
辽ICP备2021009421号-2