この記事は情報が古くなっているため、事実関係の正確性に欠ける可能性があります。(2024年11月) |
| プレーヤーソフトウェア | ジャワ |
|---|---|
| プログラミング言語 | ジャワ |
| アプリケーション | 組み込みシステム、モバイルデバイス |
| 状態 | 非アクティブ |
| ライセンス | Oracleによる独自ライセンス |
| Webサイト | www.oracle.com/java/technologies/javameoverview.html |
| Javaプラットフォームのエディション |
|---|
|
Java Platform, Micro EditionまたはJava MEは、組み込み機器やモバイル機器(マイクロコントローラ、センサー、ゲートウェイ、携帯電話、パーソナルデジタルアシスタント、テレビセットトップボックス、プリンター)向けの移植可能なコードの開発と展開のためのコンピューティングプラットフォームです。 [ 1 ] Java ME は以前はJava 2 Platform, Micro EditionまたはJ2MEとして知られていました。
このプラットフォームは、オブジェクト指向のJavaプログラミング言語を使用し、Javaソフトウェアプラットフォームファミリーの一部です。サン・マイクロシステムズ(現オラクル社)によって設計され、類似の技術であるPersonalJavaに取って代わりました。
2013年には、Java ME対応の携帯電話が30億台以上市場に出回っていましたが、[ 2 ]スマートフォンがフィーチャーフォンを追い越したため、プラットフォームは衰退し続けました。[ 3 ]
このプラットフォームは、ノキアのSeries 40などのフィーチャーフォンで人気を博していました。また、BadaオペレーティングシステムとSymbian OSでもネイティブソフトウェアと共にサポートされていました。Windows CE、Windows Mobile、Maemo、MeeGo、Androidのユーザーは、それぞれの環境向けにJava MEをダウンロードできました(Android向けの「概念実証」)。[ 4 ] [ 5 ]
Java MEは元々Java Community Processの下でJSR 68として開発されましたが、様々なフレーバーが個別のJSRとして進化してきました。Java MEデバイスはプロファイルを実装しています。最も一般的なプロファイルは、携帯電話などのモバイルデバイスを対象としたモバイル情報デバイスプロファイルと、セットトップボックスやPDAなどの消費者向け製品や組み込みデバイスを対象としたパーソナルプロファイルです。プロファイルは構成のサブセットであり、現在Connected Limited Device Configuration(CLDC)とConnected Device Configuration (CDC)の2つがあります。[ 6 ]
2008 年、Java ME プラットフォームはJRE 1.3 の機能に制限され、そのバージョンのクラス ファイル形式 (内部的にはバージョン 47.0 と呼ばれています) が使用されました。

Oracleは、仕様のリファレンス実装と、MIDPおよびCDCのいくつかの構成とプロファイルを提供しています。JavaME 3.0 SDK以降、NetBeansベースのIDEはこれらを単一のIDEでサポートしました。
Sun がサーバーやワークステーション向けに構築した Java プラットフォームの多数のバイナリ実装とは対照的に、Sun は Java ME ターゲットのプラットフォーム用のバイナリを提供しておらず、代わりにサードパーティに独自のバイナリを提供させる傾向がありました。
例外はPalm OS用のMIDP 1.0 JRE(JVM)でした。[ 7 ] Sunは、コード名「Captain America」で知られるPersonalJavaの内部実装の噂をリリースするようにSunに公開書簡でキャンペーンを行ったにもかかわらず、Microsoft Windows Mobile ( Pocket PC)ベースのデバイス用のJ2ME JREを提供していません。[ 8 ]サードパーティの実装はWindows Mobileベンダーによって広く使用されています。
ある時点で、Sun はphoneMEという名前で、現在は廃止されているリファレンス実装をリリースしました。
Java MEをターゲットとしたオペレーティングシステムは、 DoCoMoによってDoJaとして、またSavaJeによってSavaJe OSとして実装されています。SavaJeは2007年4月にSunに買収され、現在ではSunのJavaFX Mobileの基盤となっています。
オープンソースのMika VMはJavaME CDC/FPの実装を目指していますが、認定されていません(認定実装にはロイヤリティの課金が必要であり、オープンソースプロジェクトでは現実的ではありません)。そのため、この実装を使用するデバイスはJavaME CDCとの互換性を主張することはできません。
LinuxベースのAndroidオペレーティングシステムは、Javaの独自バージョンを使用していますが、これはJava MEと目的は似ていますが、多くの点で大きく異なります。[ 9 ]
他にも、 Nokia、Sony-Ericsson、Siemens Mobileなど の携帯電話メーカーが開発キットの一部として提供するエミュレーターなどがあります。
Connected Limited Device Configuration (CLDC) は、Java クラスライブラリの厳密なサブセットであり、 Java 仮想マシンの動作に必要な最小限のライブラリです。CLDC は基本的に、多数のデバイスを固定構成に分類するために使用されます。
構成は、J2ME環境の各実装に必須のライブラリと仮想マシン機能の最も基本的なセットを提供します。1つ以上のプロファイルと組み合わせることで、Connected Limited Device Configurationは、コンシューマー向けおよび組み込みデバイス向けアプリケーションを開発するための堅牢なJavaプラットフォームを提供します。この構成は、合計メモリが160KB~512KBのデバイス向けに設計されており、Javaプラットフォーム用に最低160KBのROMと32KBのRAMが利用可能です。
携帯電話向けに設計されたモバイル情報デバイスプロファイルには、 GUIとデータストレージAPIが含まれており、MIDP 2.0には基本的な2DゲームAPIが含まれています。このプロファイル向けに作成されたアプリケーションはMIDletと呼ばれます。
JSR 271: Mobile Information Device Profile 3(2009年12月9日最終リリース)は、第3世代のMobile Information Device Profile(MIDP3)を規定し、あらゆる領域における機能性の拡張とデバイス間の相互運用性の向上を図っています。MIDP3の主要な設計目標は、MIDP2コンテンツとの下位互換性を確保することです。
情報モジュール プロファイル(IMP) は、自動販売機、産業用組み込みアプリケーション、セキュリティ システム、およびディスプレイがシンプルまたはディスプレイがなく、ネットワーク接続が制限されている同様のデバイスなどの組み込みの「ヘッドレス」デバイス用のプロファイルです。
IMP 1.0 は、もともとSiemens MobileとNokiaによってJSR -195として導入されましたが、ユーザー インターフェイスAPI を含まない点を除いてMIDP 1.0の厳密なサブセットです。言い換えると、Java パッケージ のサポートは含まれていません。JSR-228 (IMP-NG とも呼ばれます) は、 MIDP 2.0に基づいた IMP の次世代であり、MIDP 2.0 の新しいセキュリティとネットワークのタイプと API、および や などのその他の APIを活用していますが、UI API とゲーム API は含まれていません。 javax.microedition.lcduiPushRegistryplatformRequest()
Connected Device Configuration( CDC)はJava SEのサブセットであり、GUI関連以外のほぼすべてのライブラリが含まれています。CLDCよりも豊富な機能を備えています。
Foundation Profile は、Java ME Connected Device Configuration (CDC) プロファイルです。このプロファイルは、Java Platform, Standard Edition API 全体を含む Java 仮想マシンの完全な実装を必要とするデバイスでの使用を想定しています。一般的な実装では、サポートされる追加プロファイルに応じて、API セットの一部が使用されます。この仕様は、Java Community Process に基づいて開発されました。
Personal Basis Profileは、Foundation Profileを拡張し、 AWTサブセットの形で軽量GUIサポートを組み込みます。これはBD-Jが構築されている プラットフォームです。
| JSR # | 名前 | 説明 |
|---|---|---|
| 68 | J2ME プラットフォーム仕様 | |
| 30 | CLDC 1.x | |
| 37 | MIDP 1.0 | |
| 118 | MIDP 2.x | |
| 139 | CLDC 1.1 | |
| 271 | MIDP 3.0 | Java ME 3.4 以前のみ、携帯電話向けの最終仕様、Java 言語機能は Java SE 1.3 と同じ |
| 360 | CLDC8 | Java ME 8の新機能 |
| 361 | ミープ8 | Java ME 8の新機能、Java SE 8と同様の言語機能、Internet of Everythingデバイス 向け |
| JSR # | 名前 | 説明 | MSA |
|---|---|---|---|
| 75 | ファイル接続とPIM API | ファイルシステム、連絡先、カレンダー、ToDo | |
| 82 | ブルートゥース | Bluetooth シリアルポート通信とファイル交換 (OBEX) | |
| 120 | ワイヤレス メッセージング API (WMA) | ||
| 135 | モバイル メディア API (MMAPI) | オーディオ、ビデオ、マルチメディア | |
| 172 | WebサービスAPI | XMLパーサーとRPC | |
| 177 | セキュリティおよび信頼サービス API (SATSA) | APDU、Java Card RMI(JCRMI)、公開鍵インフラストラクチャ(PKI)、暗号化 | |
| 179 | ロケーションAPI | GPS座標、住所、方位センサー、ランドマーク店舗 | |
| 180 | SIP API | ||
| 184 | モバイル3Dグラフィックス(M3G) | ハイレベルな3Dグラフィックス | |
| 185 | ワイヤレス業界向け Java テクノロジー (JTWI) | 一般的な | |
| 205 | ワイヤレス メッセージング API (WMA) 2.0 | SMSとMMSの送受信 | |
| 211 | コンテンツハンドラー API (CHAPI) | ||
| 226 | J2ME 用スケーラブル 2D ベクター グラフィックス API (M2G) | SVG Tinyの取り扱い | |
| 228 | 情報モジュールプロファイル – 次世代 (IMP NG) | ||
| 229 | 支払いAPI | ||
| 234 | 高度マルチメディア補足資料(AMMS) | MMAPI拡張 | |
| 238 | モバイル国際化API | ローカライズされたリソース、ロケールの日付と数値の書式設定、ロケールの文字列の比較 | |
| 239 | OpenGL ES API の Java バインディング | ||
| 248 | モバイル サービス アーキテクチャ (MSA) | ||
| 253 | モバイルテレフォニーAPI | ||
| 256 | モバイルセンサーAPI | 加速度計、ジャイロスコープ、コンパス、温度計、気圧計などからの値の読み取り | |
| 257 | 非接触通信API | ||
| 258 | モバイルユーザーインターフェースカスタマイズAPI | ||
| 272 | 携帯端末向けモバイル放送サービスAPI | ||
| 280 | Java ME 用 XML API | ||
| 281 | IMS サービス API | ||
| 287 | Java ME 用スケーラブル 2D ベクター グラフィックス API 2.0 | ||
| 293 | ロケーション API 2.0 | ||
| 298 | Java ME 向けテレマティクス API | ||
| 300 | Java ME 用 DRM API | ||
| 325 | IMS 通信イネーブラー |
| JSR # | 名前 | 説明 |
|---|---|---|
| 297 | モバイル 3D グラフィックス API (M3G) 2.0 | 2009年4月14日最終草案 |
ESRコンソーシアムは、組み込みJavaの標準規格策定に取り組んでいます。特にコスト効率の高い標準規格を策定しています。代表的なアプリケーション分野としては、産業用制御、マシンツーマシン、医療、電子メーター、ホームオートメーション、コンシューマー、ヒューマンツーマシンインターフェースなどが挙げられます。
| ESR # | 名前 | 説明 |
|---|---|---|
| 001 | B-ON(CLDCを超えて) | B-ONは、組み込みJavaソフトウェアを実装するための非常に堅牢な基盤として機能します。Javaデバイスの信頼性の高い初期化フェーズと、不変オブジェクト、不滅オブジェクト、通常オブジェクト(消滅オブジェクト)の3種類のオブジェクトを規定します。 |
| 002 | マイクロUI | MicroUIは、組み込みHMIデバイス向けのオープンなサードパーティ製アプリケーション開発環境を実現するための拡張アーキテクチャを定義します。このようなデバイスは通常、何らかのディスプレイ、入力センサー、そして場合によってはサウンドレンダリング機能を備えています。この仕様は、幅広いデバイスに対応します。 |
| 011 | MWT | MWTは、ウィジェットデザイナー、ルックアンドフィールデザイナー、アプリケーションデザイナーという3つの異なる役割を定義します。MWTは、バイナリHMIアプリケーションを、MWTフレームワークに準拠するすべてのデバイス(組み込みデバイス、携帯電話、セットトップボックスTV、PCなど)で同じように実行できるようにすることで、製品ライン(ME、SE、EE)全体にわたってアプリケーションの真の一貫性と普遍性を実現します。 |
| 015 | エクラスパス | ECLASSPATHは、CLDC、CDC、Foundation、SE、EE実行環境を約300個のクラスAPIセットで統合します。CLDC1.1/ECLASSPATHを使用してコンパイルすることで、バイナリコードをすべてのJava実行環境で移植できるようになります。 |