Java Platform, Micro Edition (Java ME, ранее — Java 2 Micro Edition, J2ME) — подмножество платформы Java для устройств, ограниченных в ресурсах, сотовых телефонов, PDA, …

Java Platform, Micro Edition (Java ME, ранее – Java 2 Micro Edition, J2ME)Java ME разработана под руководством Sun Microsystems и является заменой похожей технологии — PersonalJava. Изначально спецификация разрабатывалась в рамках JCP (Java Community Process) как JSR 68. Позже её варианты развились в отдельные JSR. Sun предоставляет образец реализации (англ. reference implementation) спецификации, но до недавнего времени не предоставляла бесплатной реализации среды выполнения (англ. runtime environment) Java ME для мобильных устройств. 22 декабря 2006 исходный код Java ME был выпущен под лицензией GNU General Public License, проект получил название phoneME.

Отличительные особенности устройств с ограниченными ресурсами являются ограниченная вычислительная мощность, ограниченный объём памяти, малый размер дисплея, питание от портативной батареи, а также низкоскоростные и недостаточно надёжные коммуникационные возможности. Типичный современный мобильный телефон содержит внутри 32-разрядный RISC-процессор с тактовой частотой 50 МГц, имеет объём оперативной памяти около 4 Мб, цветной дисплей размером 2 дюйма и имеет возможность соединения с Интернетом посредством GPRS или EDGE со скоростью до 474 кбит/с, которое при этом фундаментально ненадёжно, поскольку скорость передачи данных может неожиданно упасть, или соединение может быть вообще полностью потеряно.

Java ME специфицирует две базовые конфигурации, которые определяют требования к виртуальной машине (ограничение набора допустимых инструкций и др.), а также минимальный набор базовых классов: CLDC (Connected Limited Device Configuration — конфигурация устройства с ограниченными коммуникационными возможностями) и CDC (Connected Device Configuration — конфигурация устройства с нормальными коммуникационными возможностями).

Java ME также определяет несколько так называемых профилей (англ. profiles), которые дополняют и расширяют упомянутые выше конфигурации, в частности определяют модель приложения, возможности графического интерфейса, а также коммуникационные функции (например доступ к Интернету) и др.

В настоящее время самой распространённой конфигурацией является CLDC, для которого разработан профиль MIDP (Mobile Information Device Profile — профиль для мобильного устройства с информационными функциями). Приложения, написанные для этого профиля, называются мидлетами (англ. MIDlet). Другим популярным профилем для CLDC является DoJa, разработанный фирмой NTT DoCoMo для её собственного сервиса iMode. iMode весьма распространён в Японии, и в меньшей степени в Европе и на Дальнем Востоке.

Конфигурация CLDC успешно используется в большинстве современных мобильных телефонов и портативных органайзеров. По данным компании Sun Microsystems к концу 2004 года в мире было выпущено более 570 миллионов мобильных устройств с поддержкой этой конфигурации Java. Это делает Java ME доминирующей технологией Java в мире. Объёмы производства мобильных телефонов значительно превышают количество других компьютерных устройств, способных исполнять приложения на Java (например, персональных компьютеров).