Wednesday Aug 08, 2012

Java 6 End of Public Updates extended to February 2013

Earlier this year I announced that the EOL for Oracle JDK 6 had been extended from July 2012 to November 2012. JDK 6 was the default JDK for over 5 years, and so it seems fair that it have a longer publicly available support time-frame than past major releases.

After further consultation and consideration, the Oracle JDK 6 End of Public Updates will be extended through February, 2013. This means that the last publicly available release of Oracle JDK 6 is to be released in February, 2013. After the End of Public Updates for JDK 6, if you have a valid support contract for an Oracle product that requires JDK 6, or an Oracle Java SE Support contract, there will still be additional support versions of JDK 6 available from My Oracle Support. Previously available versions of JDK 6 will remain available to the public through the Java Archive for debugging and testing purposes but Oracle no longer recommends using those in production.

It's important to highlight that, as we establish a steady two year cadence for major releases, End of Public Update events for major versions will become more frequent. As a reminder, moving forward, Oracle will stop providing public updates of a major JDK version once all of the following criteria have been met:

  • Three years after the GA of a major release
  • One year after the GA of a subsequent major release
  • Six months after a subsequent major release has been established as the default JRE for end-user desktops on

For more information see the FAQ on OTN.

Monday May 21, 2012

Java 7 adoption at 23%

Quotes from a recent study by ZeroTurnaround:

"Java 7 has been out for less than a year, and at 23% adoption we were slightly surprised at the speed of uptake."

"Java 6 is the overwhelming version of Java, used by 88% of respondents. But more interesting and exciting is the fact that 23% of respondents are already using Java SE 7. This is amazing penetration, considering it came out less than half a year before the time of this survey. This gives hope that as Java SE 8, 9 and 10 come out in the next 6 years or so, a lot of engineers will be able to benefit from the changes quickly."

Refer to the study for more detail (registration required, quotes used with permission). This data matches other indicators, such as the 18% adoption rate posted by Jelastic a few months ago, which goes on to say:

"This growth is especially impressive considering that Java 6 is currently the default option in Jelastic, so users who turn to Java 7 make this selection explicitly."

Wednesday May 02, 2012

Moving to Java 7 as default

Update: The issue reported in JRE 7 related to JAR file association on certain Windows configurations has been fixed and updated binaries posted to

Back in February, I wrote a post on this blog stating that the End Of Life (EOL) of public support and public releases for JDK 6 was extended to November 2012, to allow for some more time for the transition to JDK 7. As part of the updated EOL policy, EOL for public support and fixes for Java SE will typically occur no earlier than six months after a subsequent major release has been established as the default JRE.

With the release of Java SE 7 Update 4, the Java SE 7 runtime is now available on as the default JRE. We can now slowly begin the process of automatically upgrading Microsoft Windows Java users to the latest version of Java SE 7 through the auto update function. If you don't desire to be automatically upgraded to Java SE 7 just yet, you can learn more about your options in the FAQ.

In terms of major new features, beside Mac OS X support, Java SE 7u4 includes the eagerly anticipated next-generation Garbage First (G1) garbage collection algorithm, as well as numerous performance enhancements to the JVM. It's very mature and stable, has been tested with large parts of our middleware and applications stacks and - as a result - is fully supported and recommended for use with Oracle Fusion Middleware.

This is another Java SE 7 update release that has been developed from beginning to end within the JDK 7 Updates Project in the OpenJDK community. As the vast majority of Oracle’s maintenance contributions in the OpenJDK community is for Java SE 7, users of the previous release, OpenJDK 6, should consider upgrading to OpenJDK 7, or - of course - to Oracle JDK 7, depending on their requirements. In line with no longer posting updates of Java SE 6 after November 2012 to Oracle’s public download sites, we don’t have plans to contribute further changes to the OpenJDK 6 Project after November 2012.

Thursday Apr 26, 2012

Oracle JDK and JavaFX SDK now GA on Mac OS X

Oracle JDK 7 and the JavaFX 2.1 SDK are now available for Mac OS X. This release is a major milestone in our effort to bring Oracle Java to Mac. From this point on, every release of Oracle JDK 7 and JavaFX 2.1 (and later) will be available on Mac at the same time as for Linux, Windows and Solaris.

Where do I download the JDK and JavaFX for OS X?
From The JDK download also contains the Java FX SDK.

Exactly what does this release contain?
A fully compatible implementation of Java SE 7, as well as most JDK development tools and the full JavaFX 2.1 SDK. Some of the serviceability and debugging tools and deployment technologies such as the Java Plugin and Web Start are not yet available, and will be added in subsequent releases. See the JDK release notes and the JavaFX release notes for details.

Does Oracle support NetBeans for use with JDK 7 on Mac?
Yes! NetBeans 7.1.2 was released simultaneously with JDK 7 Update 4, with full support for Oracle JDK on Mac. See the announcement here, and download it here.

Are there any known issues with this release?
Mac OS X is major new platform for us; the first new platform added in a very long time. It should be considered a "1.0" release and there are a number of known issues. Consult the release notes (JDK, JavaFX) for details.

What do I do if I believe I have found a new issue?
Consult the release notes first to ensure that it is not a known issue. You can ask for help to verify and troubleshoot on the appropriate mailing list or web forum, and then file a report in our bug system.

Is the source code to the OS X port available?
Yes! All code for the JDK can be found in the OpenJDK community in the JDK 7 Updates project. JavaFX is partially open sourced in the OpenJFX project; Oracle is working towards open sourcing the remaining parts.

What Apple hardware and what versions of OS X are supported?
Oracle's JDK and JavaFX release supports OS X Lion on any 64-bit capable Intel-based Mac. Specifically, our implementation is 64-bit only so it requires a 64-bit operating system.

Can I use the Oracle JDK on older OS X versions?
Probably not. The underlying issue here is that the Oracle JDK requires certain APIs that Apple introduced in Lion. The functionality introduced in these new APIs did to some extent exist in older OS X versions but were not official APIs.

What if I want a 32-bit JVM, or support for older PPC-based Macs?
There are community efforts based on OpenJDK to build JDK 7 for other configurations, easily found using your favorite search engine. We applaud these efforts! :-)

Can I get commercial support for the Oracle JDK and JavaFX on Mac OS X?
These are considered standard Oracle releases and are therefore covered under the Java SE Support program. Note that support on Mac is for development only; e.g. we don't expect your Mac to be running a business critical server-side application...

What can you say about the roadmap?
Future release of the Oracle JDK and JavaFX on Mac will follow the normal JDK release train with 4-6 releases every year. The next major milestone is JDK 7 Update 6 where we plan to add support for Plugin and Web Start. Early access builds are available here. JDK 8 will of course also support Mac OS X.

Thursday Feb 23, 2012

Java at Embedded World 2012

If you are interested in the latest developments in the embedded-industry and want to make valuable business contacts, then visit Embedded World. Oracle will be showcasing the latest embedded Java technologies, along with more than 800 exhibitors from Germany and abroad who come to Nuremberg to present their products and services. Some statistics:

  • Approximately 20,000 attendees
  • 800 exhibitors from 32 countries
  • 18,350 visitors from 66 countries
  • 1,095 conference participants from 37 countries
  • 204 journalists from 17 countries

Our exhibit stand (stand 313, hall 5) will have 4 workstations with which we will be demoing Java Embedded on partner devices. Partners include: Inductive Automation, Marvell, Mobile Integration Workshop, Pactron, Revolution Robotics and Si14.

Presentations by Oracle employees:

Wednesday Feb 15, 2012

Updated Java 6 EOL date

The Java SE Support Roadmap reflects an updated timeline for the EOL of public support and public releases for JDK 6. The EOL date has been extended from July 2012 to November 2012, to allow some more time for the transition to JDK 7. We have also updated the EOL policy to clarify our intent for this, and future major releases. EOL for public support and fixes for Java SE will typically occur no earlier than:

  • Three years after the GA of a major release
  • One year after the GA of a subsequent major release
  • Six months after a subsequent major release has been established as the default JRE

This policy has been consistent through the history of Java. The JRE is free software, and as is the case with most free software, users are encouraged to adopt the latest stable version. For those who need longer support lifetimes, Oracle offers Java SE Support

Tuesday Dec 13, 2011

Java SE Embedded 7u2 Released

The Java SE Embedded team continues to follow the mainline JDK and has shipped their 7u2 and 6u30 releases. These releases include new ports to Linux on embedded PPC devices, and support for the server (C2) compiler on ARM. The latter improves Java performance on ARM systems by approximately 20-40%. You can find the downloads and release notes (7u2, 6u30) on the Oracle OTN web site.

Oracle's longer term strategy for Java on Embedded devices - as shared at JavaOne 2011 - is to converge the Java ME/CDC and Java SE Embedded platforms into one and use Project Jigsaw to produce a base module based on JDK 8 that requires no more than approximately 10 MB ROM. We also intend to port JavaFX to Linux on ARM for a coherent client story ranging from medium sized embedded devices to normal laptops and desktops.

Sunday Dec 11, 2011

JRockit Mission Control 4.1 released

JRockit Mission Control 4.1 is now available for download. It includes HotSpot support, improved Solaris support, DTrace integration, a Mac OSX port, support for Oracle Coherence and a range of new cool features. More details in Markus Eisele's blog post.

This will likely be the last large feature release of JRockit Mission Control. Moving forward, we are focusing on support for JDK 7 and the converged HotSpot/JRockit JVM. The product will be renamed Java Mission Control as of the 5.0 release.

Thursday Aug 11, 2011

Java 7 Questions & Answers

Updated 8/18 Please use a real email when commenting; some of your questions are not of general interest and will not be posted but I can often respond privately.

This blog entry will be used to host commonly asked questions related to Java 7. I have pre-seeded it with a few that have come up since the July 28 release. If you have additional questions, feel free to post as a comment to the blog. I will not respond to them in the comments, but will instead aggregate and update the blog entry. Only questions of general interest to the community will be answered here. Fire away!

Q: Where can I download Java 7?
A: From, where you can find the JDK 7 download page.

Q: When will JRockit be available for Java 7?
A: It won't. As we explained last year we are merging JRockit and HotSpot into one single JVM. JDK 7 contains the first release of this converged JVM, where one of the first steps was to start removing the PermGen concept. Future JDK 7 updates will complete the PermGen removal, as well as add more visible features from JRockit.

Added 8/18
Q: I have created an application in Java 7, but when my users try to run it they get an Unsupported major.minor version 51.0 error. What does this mean and what can I do about it?
A: If you compile an application using javac in Java 7, the resulting classfiles will have the 51.0 version number. Versions of Java prior to 7 do not recogize this number, so your users will have to upgrade to Java 7 prior to running your application. If you are not using any Java 7 APIs you can try to compile your application using javac -target 1.6 to create a 1.6-compatible classfile. If your application is deployed using webstart you can specify the minimum version required. For more information, see the docs on Java Web Start and JNLP here. This issue will go away once we trigger autoupdate to Java 7 for end-users currently having Java 6 on their desktops. The timeline for this is not yet determined, we want to give developers time to work out any issues between their code and JDK 7 first.

Added 8/17
Q: Will the converged JVM get the feature that allows JRockit to allocate more heap on Windows?
A: For reference, the feature you are asking about is described here. Adding this to HotSpot turns out to be quite complex due to how the JVM is architected. Our current plans for convergence do not include this feature. We recommend using a 64-bit JVM instead, which does not run into this Windows limitation.

Q: Where can I find the source code?
A: The source code for the Java SE 7 Reference Implementation is available from the JDK 7 Project in the OpenJDK Community.

Added 8/17
Q: What is the difference between the source code found in the OpenJDK repository, and the code you use to build the Oracle JDK?
A: It is very close - our build process for Oracle JDK releases builds on OpenJDK 7 by adding just a couple of pieces, like the deployment code, which includes Oracle's implementation of the Java Plugin and Java WebStart, as well as some closed source third party components like a graphics rasterizer, some open source third party components, like Rhino, and a few bits and pieces here and there, like additional documentation or third party fonts. Moving forward, our intent is to open source all pieces of the Oracle JDK except those that we consider commercial features such as JRockit Mission Control (not yet available in Oracle JDK), and replace encumbered third party components with open source alternatives to achieve closer parity between the code bases.

Added 8/18
Q: How much more in JDK 7 is open source compared to JDK 6?
A: All new JDK 7 features are open source, as is the Java SE 7 Reference Implementation. Also, the majority of the features that are ported from JRockit are open source (or will be once they are in the JDK 7 code base).

Updated 8/17
Q: Why isn't Java 7 available on yet?
A: The site is used for end-user downloads. As with previous major versions of Java, JDK 7 is first made available to developers so that they can ensure that their Java programs work with the new JRE version before it gets rolled out to millions of end-users. There is a unobtrusive link from the website that takes you to developer downloads on

Q: Where can I find API documentation?
A: Javadocs are available here.

Q: What is the status of the port of Java 7 to the Mac?
A: Feature development is still going on in the OpenJDK Mac OS X Port 7 Project. You can see the detailed status here. Once that Project has made sufficient progress - say a couple of months from now or so - we plan to build and make a developer preview available from the main JDK download site. We will then work with Apple and others in the Mac OS X Port Project to finalize remaining feature work such as installers and plugin/webstart, and then go through the usual steps of one or more beta releases and/or release candidates before we get to GA. If you are anxious to get started, there are a number of third parties that provide binary builds from the OpenJDK code. Just use your favorite search engine and you'll find several.

Q: I have read about issues with Apache Lucene running on JDK 7, what is that about?
A: The Lucene project has reported that running Lucene triggers a JIT bug that causes a JVM crash. It can be worked around by disabling the broken optimizations with command line options, see the bug reports for details. The three bugs that Lucene reported have been fixed in the OpenJDK code, in addition to a fourth bug impacting Lucene that Oracle found (7070134, 7068051, 7044738, 7077439), and are included in current builds of JDK 7 Update 1 (and will remain included unless the fixes cause regressions). For more information on how Oracle prioritizes and works with external bug reports see this blog by Dalibor Topic. And while I'm at it - many thanks to all those of you who have tested JDK 7 and reported issues!

Q: I read the JDK 7 license. It mentions something about Commercial Features, what does that mean?
A: Sun versioned the end user license together with the binary, which made it clear what terms applied for a particular release. However, it also meant that a Java user would have to re-review the license for every new release (including update release), which lead to uncertainty around future licensing conditions. Oracle's approach is to minimize the number of licenses used for Java - ideally getting it down to only one. This means a more predictable and stable licensing situation, at the cost of a slightly more complex license text since it needs to be able to cover more scenarios. When we made JRockit free we modified the Binary Code License to make it cover all versions of Java, as well as JRockit. This was announced in one of my previous blog posts. The "Commercial Features" clause is there to allow us to port over value-add features from JRockit to the converged Hotspot/JRockit JVM starting with JDK 7. Full details on what features are non-free can be found in the product documentation. In the standard JDK 7 GA binaries, there are no commercial features so there is no risk that you use them by mistake. As we move such features to JDK 7 in a future update, our plan is to require an explicit flag to enable them. Note that these features are only restricted "for any commercial or production purpose" so individual developers need not worry. For full information, read the license text itself.

Thursday Jul 28, 2011

Java SE 7 is now GA

We are very happy to announce that JDK 7 is now GA. The release is on time according to the announcement we made at JavaOne last year and with no significant changes to release content. I would like to express a heartfelt thank you to all those at Oracle and elsewhere in the community that has helped with this release (honorable mentions).

With this important milestone behind us, our engineers are already busy with other projects such as JavaFX 2.0 and JDK 8. If you want to know more about JDK 7 or what's in the pipe, check out this podcast, the videos from the Java 7 launch and come and join us at JavaOne 2011!

Wednesday Jun 08, 2011

Moving to OpenJDK as the official Java SE 7 Reference Implementation

Update 7/22/2011: The JavaSE 7 Reference Implementation is now available for download from

We are now less than two months away from the JDK 7 release date. In parallel with the development project, Oracle and the other members of the Java SE 7 Expert Group have been putting the finishing touches to the Java SE 7 specification (JSR 336). In its role as the specification lead, Oracle is responsible for delivering the Java SE 7 Reference Implementation. In line with our strategy towards a more open Java ecosystem, we are going to provide a Reference Implementation that is based entirely on the OpenJDK open source code and make it available under the GPL open source license.

The role of the Reference Implementation (RI) is to be used as the gold standard for all Java implementations. In order to have an implementation certified as Java SE compatible, an implementor must pass a large number of compatibility tests - the Technology Compatibility Kit (TCK). Furthermore, implementations may be compared to the RI as an additional check of compatibility. Basically, if your implementation has been certified to have the same behavior as the RI then it is Java compatible. For more information on this topic, consult the JCP FAQ.

Historically, Sun always used the Sun JDK as the RI and made it available under the Binary Code License (BCL). This was very convenient for Sun since it meant that its product implementation was compatible by definition. However, it was also confusing since the Sun JDK contained quite a few features that were not part of the standard, such as the Java Plugin. Also, continuing this practice would make things difficult for open source implementors as they would not be able to study and evaluate the official RI source code. (The source code for the Oracle JDK is slightly different from OpenJDK - something we will be addressing moving forward).

With that in mind, Oracle will:

  • Create RI binaries based only on the OpenJDK code base.
  • Make RI binaries available under the BCL (the normal Java license) for commercial implementors and GPLv2 (with the Classpath exception) for open-source implementors.
  • Continue to provide the TCK to commercial licensees, but also update the OCTLA license so that it covers Java SE 7. The latter allows open source implementators gratis access to the TCK to verify their implementations.

We believe that these changes will lead to improved clarity in the Java community, as well as make things easier for both commercial and open source Java SE implementors.

Update: I have been asked to make a couple of clarifications. First, there is no change to our policy vs Apache Harmony. OCTLA is a program that allows free access to the TCK for OpenJDK-derived implementations licensed under GPL and is only intended for that purpose. Second, the Oracle implementation (what you find on or will remain under the BCL license only. Finally, to be completely clear, the OpenJDK source code remains under GPL.

Tuesday May 17, 2011

JRockit is Now Free (and Other Java License Updates)

Don't forget the JavaOne 2011 Call for Papers

As previously communicated our strategy is to converge the HotSpot and JRockit JVMs into a single best-of-breed JVM (blog, press release). While most of the work involved in this effort is engineering - taking ideas and features from JRockit and porting them over to OpenJDK - we have also been working on convergence from a licensing perspective. This work is now complete, and we have changed the license that we distribute both the Oracle (Sun) JDK and JRockit under. The new license is a slightly modified version of the Binary Code License that Sun has used for various Java downloads for many years. The full text of the new license is available here. For comparison, the old BCL is available here.

Summary (check the license for details):

  • JRockit is now free (gratis) for development and internal production use on general purpose computers. Clarification: I stole this wording from the license text. These are the same terms that have been used for the Sun JDK for the last ten years or so.
  • Commercial features continue to require a commercial license. This includes most features currently in JRockit Mission Control, JRockit Real Time and JRockit Virtual Edition. Previously, it was only possible to get a commercial license for these features as part of Oracle products (such as WebLogic Server), they can now be purchased standalone for use with any Java application.
  • No other major changes. Specifically, redistribution of the JDK is permitted, now also applicable to JRockit.

Q: Does this mean I can now use JRockit with any Java application?
A: Yes, under the same terms as you currently use the Oracle (Sun) JDK. You don't need to inform us and you don't need to pay anything.

Q: You're making me very curious about JRockit, how can I find out more?
A: I highly recommend the JRockit book (Packt, Amazon), which is very detailed and a good read. It will also give you a good picture on what will be ported into OpenJDK as we continue to move forward.

Q: Where can I download JRockit?
A: It's available on Oracle Technology Network.

Q: Do you intend to make JRockit available side by side with the Oracle (Sun) JDK on sites such as
A: No, it will remain on the current Oracle Technology Network download page.

Q: I am a developer, does this mean I can now use JRockit Mission Control for free?
A: Yes, there is no cost for development use. See the license for details.

Q: Where do I find JRockit Mission Control?
A: It is available in two forms: As a standalone application, and as a set of Eclipse plugins. The former can be found bundled with JRockit downloads on Oracle Technology Network, and the latter on the JRockit Mission Control Eclipse Update Site

Q: Why are you making JRockit free?
A: Since we are converging the JVMs technically it makes sense to treat them as a single "product" with two different incarnations/implementations. Second, by making JRockit free we hope to get more feedback on any regressions in the converged JVM vs current JRockit, which will help our convergence project.

Q: Are you planning on making JRockit open source?
A: The converged JVM will be made available through OpenJDK. We will not open-source the current JRockit implementation.

Q: How do I find out more about the updated commercial offerings?
A: We will have more information about that later, though you can contact sales if it's urgent. Our first priority was to converge the license terms.

Q: How do I find out which features are free, and which are commercial?
A: See the docs for details.

Q: Are any features that were previously free now for-charge?
A: No. It is very important for us that Java remains easily accessible to everyone, and that means free (Oracle JDK) and open (OpenJDK).

Q: How do I purchase commercial support?
A: We have been working on an updated version of the Sun Java for Business program, which will cover both the Oracle (Sun) JDK and JRockit. More detail on this will be available soon. Again, if you have urgent questions, contact Oracle sales.

Q: How does this license change affect OpenJDK?
A: Not at all. OpenJDK is released under an open source licensing model.

Q: I am currently using the Oracle (Sun) JDK? Should I switch to JRockit?
A: If you move from Hotspot to JRockit now, you will have to plan a move to the converged JVM later. Whether it's worth it depends on your rationale for considering a move. Overall, we believe most of you probably benefit more from looking at JDK 7 instead, but it depends on what your needs are.

Q: Do you have any information on the differences between the JVMs?
A: There is some information in the docs but it's unfortunately somewhat old and a bit limited.

Q: Where can I ask technical questions about either JVM?
A: Use our web forums (JRockit, Hotspot) or the appropriate openjdk mailing list.

Q: What happens next?
A: JDK 7 launch this summer. It's going to be a party! :-)

Monday Apr 25, 2011

Supported Platforms for JDK 7

[Read More]

Wednesday Feb 23, 2011

JDK 7 Developer Preview Now Available

[Read More]

Tuesday Feb 15, 2011

JDK 6 Update 24 Released

[Read More]

Henrik Stahl is VP of Product Management in the Java Platform Group at Oracle, and is responsible for product strategy for Java ME and SE.


« April 2014