Java 設計目標「Write Once, Run Anywhere」與網路能力,完美契合普及計算時代需求。J2ME 針對資源受限嵌入式裝置,架構比 J2SE/J2EE 更複雜。
Sun FAQ 將裝置分兩類:
Configuration 定義:同類裝置的最小 Java 平台(JVM + 核心類別庫),作為相容性基礎(最大公約數)。
Configuration 捨棄裝置特殊性,Profile 在 Configuration 之上,針對特定功能裝置定義裝置相關 API(UI、輸入、儲存、網路等),體現裝置特殊性。
範例:MIDP 針對智慧型手機/無線 PDA,考量螢幕/記憶體限制;PDA Profile 針對較大螢幕/記憶體的 PDA。

同一 Configuration 可支援多個 Profile,多 Profile 可共存疊加。

JSR 68 提出以 Building Block 取代 Configuration,讓 Profile 直接引用 J2SE/J2EE 現有 API,避免重複定義。