زبان برنامه نویسی جاوا از نسخه JDK1.0 خود به بعد تغییرات زیادی داشته است و کتابخانهها و بستهها و کلاسهای زیادی به آن اضافه شدهاند. از نسخه J2SE1.4 کار توسعه این زبان به عهدهی جامعه توسعهدهندگان جاوا Java Community Process قرارداده شد تا با استفاده از JSRهای ارسالی، کار توسعه و اضافه کردن تغییرات بر آن را به پیش برند.
JDK 1.0 (ژانویه 1995)
اولین نسخه ارائه شده توسط شرکت سان
JDK 1.1
ویژگیهای اضافه شده شامل:
تغییرات اساسی در مدل رویداد AWT
اضافه کردن کلاسهای inner
JavaBeans
JDBC
RMI
J2SE 1.2 (دسامبر 1998)
این نسخه با اسم رمز Playground ارئه شد. از این نسخه به بعد، تا نسخهی J2SE 5.0، پلتفرم جاوا از JDK به Java2 و J2SE تغییر کرد. ویژگیهای اضافه شده به این نسخه شامل:
اضافه کردن کلمه کلیدی strictfp
اضافه کردن APIهای Swing به کلاسهای هسته
برای اولین بار ماشین مجازی جاوا به کامپایلر JIT مجهز شد.
Java Plug-in
Java IDL
Collection Framework
J2SE 1.4 (فوریه 2002)
این نسخه با اسم رمز Merlin ارائه شد.
این اولین نسخه از پلتفرم جاوا بود که توسط جامعه توسعهدهندگان جاوا(JCP) ارائه شد. مهمترین تغییرات در این نسخه عبارتند از:
اضافه کردن کلمه کلیدی assert
اضافه کردن regular expression که از زبان برنامهنویسی perl الگو گرفته شد.
پشتیبانی از IPv6
non-blocking NIO(New I/O)
logging API
image I/O برای خواندن و نوشتن تصاویر گرافیکی به فرمتهایی شبیه JPEG و PNG
اضافه کردن XML Parser و XSLT Processor
اضافه کردن ضمیمه امنیتی و رمزنگاری
Java Web Start (البته JWS اولین بار در سال 2001 برای J2SE 1.3 ارائه شد.)
J2SE 5.0 (سپتامبر 2004)
این نسخه با اسم رمز Tiger ارائه شد. شماره نسخه ارائه شده در اصل 1.5 میباشد که هنوز به عنوان شماره نسخه داخلی استفاده میشود.
این نسخه ویژگیهای جدید و مهمی را به این زبان اضافه کرد:
Generics
Metadata:توضیح وتفسیر Annotation نیز گفته میشود
Autoboxing/unboxing: تبدیل اتوماتیک بین دادههای اولیه (Primitive Types) و primitive wrapper classes
Enumeration: کلمه کلیدی enum برای ساخت مقادیر Typesafe و به صورت لیست (Ordered list) مرتب شده به کار میرود
Swing: یک theme جدید به نام synth
Varargs: آخرین پارامتر یک متد میتواند به صورت، یک نوع داده و 3 نقطه بیان شود. برای مثال:
void drawtext(String… lines){}
بهبود حلقه for:
void displayWidgets (Iterable<Widget> widgets) {
for (Widget w: widgets) {
w.display();
}
}
اصلاح مدل حافظه جاوا
JavaSE 6 (دسامبر 2006)
این نسخه با اسم رمز Mustang ارئه شد. از این نسخه به بعد شرکت سان مجددا اسم J2SE را به Java SE تغییر داد و .0 را از شماره نسخه آن حذف کرد.
ولی همچنان در میان برنامهنویسان به صورت شماره داخلی 1.6 باقی مانده است.JSR 270 مهمترین تغییرات در نسخه شامل:
عدم پشتیبانی از Windows98. آخرین نسخه ارائه شده برای Windows98 and WindowsME، نسخهی JRE v5 Update16
پشتیبانی از زبانهای Scripting
بهبود کارایی هسته پلتفرم و Swing
بهبود web service و پشتیبانی JAX-WS
پشتیبانی از JDBC4.0
API های کامپایلر جاوا
به روزرسانی نسخه JAXB به شماره 2.0
بهبود رابط کاربری گرافیک(GUI)
Java SE 6 Update10
این نسخه که قبلا به نام Java SE 6 Update N شناخته میشد. تغییرات اصلی در این نسخه شامل:
Java Deployment Toolkit: مجموعه تابعهای JavaScript، برای راحت کردن deploy برنامههای جاوا applets و Java Web Start
کرنل جاوا، یک installer کوچک، که فقط شامل بیشترین و رایجترین کلاسهای JRE میشود. بقیه Packageها در صورت نیاز از طریق اینترنت دانلود میشوند.
Enhanced Updater
Enhanced Versioning و Pack200 پشتیبانی از
Java Quick Starter, برای افزایش سرعت لود برنامهها(Start-up)
بهبود کارایی گرافیک Java2D در ویندوز با استفاده از Direct3D و شتاب سختافزاری(Hardware Acceleration)
رابط جدید Swing با نام Nimbus و بر اساس synth
نسل بعدی Java Plug-In
Java SE 7
این نسخه با اسم رمز ِDolphin در حال توسعه میباشد. کار برروی این نسخه از سال 2006 آغاز شده و برای سال 2009 ارائه میشود. ویژگیهای جدیدی که قرار است به این نسخه اضافه گردد:
پشتیبانی ماشین مجازی جاوا از زبانهای دینامیکی
یک کتابخانه جدید برای پردازش موازی (parallel computing) در پردازندههای چند هستهای
Superpackages
ُSwing Application Framework
جایگزین کردن garbage collector فعلی با یک نسخه جدید به نام G1