**Java Platform, Micro Edition** או **Java ME** (בעבר Java 2 Platform, Micro Edition או **J2ME**) היא מפרט המגדיר חלק מפלטפורמת Java המיועד לספק אוסף של ממשקי ג'אווה לפיתוח תוכנות במכשירים שונים כדוגמת טלפונים חכמים.

רקע
---

ב- Java מורצת התוכנה על מכונה וירטואלית. היתרון העיקרי של ריצה על מכונה וירטואלית הוא שניתן לכתוב את הקוד ללא תלות במערכת ההפעלה שעליה הוא עומד לרוץ (Cross-platform). על מנת לאפשר התאמה של קוד Java למכשירים ניידים, נכתבו מספר גרסאות של JVM עבור מכשירים אלו. ריבוי המכשירים, ריבוי מערכות ההפעלה, וסוגי מעבדים שונים יצרו מוטיבציה לפיתוח על בסיס מכונה וירטואלית בתחום זה. השם הכולל שניתן למכונה הווירטואלית של Java עבור מכשירים ניידים הוא Java ME (נקראה בעבר J2ME).

למרות שלכאורה בכתיבה ב- Java אין תלות במערכת ההפעלה, המציאות במכשירים ניידים לא תמיד תואמת עיקרון זה. לעיתים יש צורך להתייחס למאפינים הספציפיים של המכשיר עליו ירוץ הקוד, בעיקר בהיבטים של גודל המסך ויכולותיו.

פיתוח ותשתית
------------

כדי לפשט את כתיבת המכונה הווירטואלית למגוון של טלפונים ומערכות קטנות, היא חולקה לשתי שכבות לוגיות. השכבה הנמוכה יותר נקראת CDC או CLDC. אלו שני סוגים שונים של השכבה הנמוכה שיפורטו בהמשך. שכבה זו משתנה בהתאם לחומרה הספציפית ולמערכת ההפעלה של המכשיר הנייד, ויש לפתח אותה עבור כל מכשיר נייד. מעליה נמצאת שכבת האפליקציה, המממשת את ה-API המסופק על ידי Java Virtual Machine. שכבת האפליקציה אחראית למשל על טיפול בתפריט ובמסך, כאשר היא מסתמכת על שכבת ה- CDC/CLDC לתקשורת עם החומרה ומערכת ההפעלה של המכשיר.

שכבת ה- CDC (או בשמה המלא: Connected Device Configuration) היא התשתית למערכות שהן יחסית עתירות משאבי זיכרון ועיבוד, ואילו שכבת ה CLDC (הנקראת Connected Limited Device Configuration) מיועדת למערכות מוגבלות משאבים, ומאפשרת פונקציונליות פחותה.

בנוסף, קיימים מספר וריאנטים של שכבת האפליקציה. הגרסה הנפוצה ביותר היא ה- MIDP. גרסה זו מפותחת בעזרת תשתית CLDC, שהיא מוגבלת יותר, ובהתאם מכילה חלק קטן יותר של ה- API הסטנדרטי. לעומתה, Personal Java ו- Java TV הן גרסאות חזקות יותר של שכבת האפליקציה, המשתמשות בשכבת CDC. לכן, הן תומכות בממשק מורחב יותר, הדומה יותר לממשק Java הסטנדרטי. לדוגמה, Personal Java כוללת תמיכה ב- AWT, ממשק המשמש ליצירה של גרפיקה מבוססת חלונות וממשק משתמש באופן פשוט.

כדי לעזור ליצרניות המכשירים הניידים בהתאמה ל- Java, חברת Sun מספקת שירותי מימוש Java לטלפונים וסביבות פיתוח עבור J2ME.

ממשקים עיקריים
--------------

אפליקציית Java הכתובה עבור MIDP נקראת Midlet. (בדומה ל-Applet, Servlet)

ב- MIDP נתמכות הפונקציות העיקריות הבאות הבאות:

* הפעלה ראשונית, המתנה (למשל בעת קבלת שיחה) וסיום האפליקציה.
* קבלת אובייקט המסך, ושימוש באובייקטים גרפיים על מנת להציג עליו תפריטים או גרפיקה.
* מערכת טעינה חכמה, המאפשרת אריזת אפליקציות בקובץ Jar (קובץ ארוז רגיל של Java) ויצירת קובץ תיאור של האפליקציה, המאפשר למכשיר לוודא האם האפליקציה נתמכת לפני הטעינה עצמה. קובץ התיאור נקרא קובץ Jad.

הרחבות
------

במקביל להתפתחות של הטלפונים באירופה ובארצות הברית על ידי נוקיה, מוטורולה וסימנס, התפתחה ביפן תרבות משחקי טלפון. מגמה זו הובילה לפיתוח מימוש שונה ל- J2ME הנקרא DoJa. בניגוד ל- MIDP, גרסה זו הותאמה במיוחד למשחקים ופותחה על ידי חברת DoCoMo, המפעילה הגדולה ביפן.

הדרישה לתמיכה חזקה יותר באפליקציות בידוריות ובמשחקים התרחבה גם לשאר העולם, ובעקבותיה יצאו הרחבות ומימושים נוספים. המימוש העיקרי הוא גרסה חדשה של MIDP, בשם MIDP 2.0. גרסה זו מרחיבה את התמיכה במשחקים ובאנימציה. בנוסף, גרסה זו מרכיבה את ממשקי התקשורת עם הרשת. נכון ל-2009, הגרסה הבאה, הנקראת MIDP 3.0, עדיין נמצאת בפיתוח.

קישורים חיצוניים
----------------

* 

* אתר האינטרנט הרשמי של Java Micro Edition
* java.com
* Wireless Highlights and News

| Java (פלטפורמת תוכנה) |
| --- |
| פלטפורמה | Java (שפת תכנות) • Java Card • Java ME • Java EE • Java SE • Java Virtual Machine |  |
| טכנולוגיות | Java applet • Java Web Start • Java Servlet • JavaServer Pages • JavaFX • JavaServer Faces |
| מושגים | איסוף זבל • Cross-platform • Java Bytecode • Java Development Kit • Javadoc • Java Classloader • Java Class Library 
JIT Compiler • HotSpot • JavaBeans • Enterprise JavaBeans • JNI • JAR • POJO • Web container • Java annotation 
Java package • Java Class File |
| ממשקי תכנות יישומים | Swing • AWT • SWT • Java 3D • Java 2D • JMS • JDBC • JAXP • JPA • RMI • JNDI |
| שפות ל-JVM | Scala • Clojure • Groovy • JRuby • Jython |
| תשתיות תוכנה וכליםשל חברות צד שלישי | אפאצ'י טומקט‏ • Apache Maven • Apache Ant • Apache Struts
JUnit • Hibernate • Spring Framework • JBoss • Google Web Toolkit • BEA WebLogic • IBM WebSphere |
| סביבות פיתוח משולבות | Eclipse • NetBeans • IntelliJ |
| חברות | סאן מיקרוסיסטמס • אורקל |
| אישים | ג'יימס גוסלינג • ביל ג'וי • אריק שמידט |