Monday Oct 20, 2014

Moving on to Java 8

Last month, I wrote about our efforts to make the transition to Java SE 8 smooth for end users. The incredible pace of adoption of Java SE 8 by the Java community surpassed our expectations, with open source projects and commercial products like Oracle WebLogic Server alike announcing their readiness for the new platform release.

With the release of Java SE 8 Update 25, the Java SE 8 runtime is now available on as the default JRE for end-users. The process of migrating users from Java 7 to Java 8 through the auto update feature is expected to take place during the first quarter of 2015.

As outlined in the Oracle Java SE Support Roadmap, after April 2015, Oracle will no longer post updates of Java SE 7 to its public download sites. While existing Java SE 7 downloads will remain accessible on Oracle Technology Network, developers and end-users are now encouraged to begin the transition to Java SE 8.

Customers who need continued access to critical bug fixes and security fixes as well as general maintenance for Java SE 7 or older versions can get long term support through Oracle Java SE Support.

Sunday Sep 28, 2014

Java SE 8 Adoption - The Big Guns

With JavaOne underway, and lots of coverage around Java SE 8, a subject that will be on many attendees' minds is their own readiness to migrate to Java SE 8. More broadly, the Java community's adoption of the latest major release of the Java SE platform among ISVs and open source projects alike.

In a previous blog post I touched on that subject briefly from the developer perspective, mentioning examples of hundreds of open source projects, among them prominent Linux distributions like Fedora and languages on the JVM like Scala working to ensure that their software runs well on JDK 8. In the weeks since my last post, more projects have discussed and announced their own plans to support or adopt Java 8 - Apache Lucene is one prominent example, Oracle Glassfish Server Open Source Edition is another, but similar discussions and decisions are underway in many other open source projects, from QueryDSL, Apache Camel, Ratpack to parts of the Big Data ecosystem like HBase and Apache Hadoop itself.

This pace of adoption for a major Java platform release is unprecedented!

Oracle is as excited about the performance and productivity benefits of Java SE 8 as everyone else in the Java community. I am particularly pleased to see that Oracle WebLogic Server - the foundation for all Oracle Fusion Middleware - is now certified on Oracle JDK 8. See the blog post by Steve Felts in the WebLogic team for details on their product announcement.

If you'd like to join in the fun, the JDK 8u20 release is available on OTN, and early access builds of JDK 8u40 are available for testing on

Thursday Sep 11, 2014

Java 8: Not Just For Developers Any More

As with past Java releases such as Java 7, Java 8 was first made available through the Oracle Technology Network (OTN) to give developers adequate time for testing and certification before being made available on the website for end users to download. Java 8 has been well-received since its release in March 2014. It was followed by the JDK 8u5 and JDK 8u11 Critical Patch Updates and, most recently, JDK 8u20 in August.

The JDK 8u20 release continues to improve upon the significant advances made in JDK 8 with new features, security and performance optimizations such as the new Advanced Management Console, the updated Java Mission Control 5.4, and the new MSI Enterprise JRE installer.

As part of the effort to make the transition to Java 8 smooth for end users, we have been publishing Early Access builds of update releases at These enable developers to test their applications ahead of a release and regularly provide feedback during the development cycle. We are working both with ISVs through the Oracle Java CAP Program and the broader open source Java developer community through OpenJDK, including popular open source projects such as Scala, Groovy and Apache Lucene.

As a result, I am pleased to see that Java 8 enjoys a nice uptake among developers. For example, there are thousands of open source projects written in the Java programming language building and testing against JDK 8 already. As another example, Linux distributions such as Fedora are working to switch] their collections of Java-based libraries and applications to use Java 8 as the default runtime. Scala developers have announced plans to move to Java 8 in a future release, as well.

That is an amazing community response within less than six months of a major Java platform release!

Based on our experience so far, I expect Java 8 to be ready to debut as the default Java runtime on before the end of 2014, and the process of migrating users from Java 7 to Java 8 through the auto update feature to take place during the first half of 2015. I will have more to share on that as we prepare for the transition.

If you’re a Java developer and you haven’t yet started to prepare, now would be a good time to take JDK 8u20 for a spin! And if you are feeling brave, maybe even one of the Early Access builds of JDK 8u40.

Wednesday Jul 23, 2014

Oracle JDK on 64-bit ARM - July 2014 update

Oracle and ARM have been working together for a while now to port the Oracle JDK 8 to the 64-bit ARMv8 micro architecture, in support of the introduction of 64-bit ARM-based servers. This project is making good progress and remains on track for GA in the first half of CY2015. Collaboration with hardware partners is going well:

  • AMD: We are expecting the first systems from AMD shortly and will start working immediately to verify our implementation on them.
  • Applied Micro: Development and QA is currently done almost exclusively on Applied Micro X-Gene hardware. We have had access to their systems for a while, and they have been arriving in increasing numbers lately.
  • Cavium: We are engaged with Cavium and will be working on their systems as soon as they start shipping to development partners.

And current project status is green:

  • We have both the client (C1) and server (C2) compilers working, passing the TCK and a large battery of tests including stress/endurance.
  • Remaining work includes serviceability features like the Java Flight Recorder, application testing, bug fixing and performance benchmarking/optimizations.
  • We are now signing up the first set of partners and customers for a managed beta program to get feedback on quality, performance, features and target workloads. This is a major milestone that signals us moving from R&D towards being production ready.
  • Public early access program will be available later during the development project, after we have reached the Feature Complete milestone.

We plan to share more details about the features and schedule towards GA at JavaOne 2014. Be there to get the news first-hand, and also to see a variety of real workloads run on ARMv8 systems from our development partners.

Friday Jul 11, 2014

Updated: The future of Java on Windows XP

Oct 15: The recent JDK 8 Update 25 release includes a fix that enables installation of JDK 8 on Windows XP. It remains an unsupported platform and all recommendations in this blog entry still apply.

Earlier this year, Microsoft announced end of support for Windows XP. As a direct result, Oracle announced that we no longer provide official support for Java on Windows XP. The main implication of this is that a customer with a support contract may be required to reproduce an issue encountered on Windows XP on a later version of Windows, and if the issue is specific to Windows XP Oracle is not required to (and may be unable to) issue a patch or a workaround.

This end of support announcement has been misread as "Java no longer works on Windows XP" or "Oracle will stop Java updates from being applied on Windows XP". These statements are not correct.

We expect all versions of Java that were supported prior to the Microsoft de-support announcement to continue to work on Windows XP for the foreseeable future. In particular, we expect that JDK 7 will continue to work on Windows XP. Security updates issued by Oracle will continue to be pushed out to Windows XP desktops. Users that download JDK 7 from or will continue to be able to install on Windows XP.

JDK 8 is not supported on Windows XP. Early versions of JDK 8 had known issues with the installer on Windows XP that prevented it from installing without manual intervention. This was resolved in JDK 8 Update 25.

The important point here is that we can no longer provide complete guarantees for Java on Windows XP, since the OS is no longer being updated by Microsoft. We strongly recommend that users upgrade to a newer version of Windows that is still supported by Microsoft in order to maintain a stable and secure environment.

Q: I recently read on the Internet that Oracle’s upcoming security update for JDK 7 will not work on Windows XP. Is this correct?
A: No. Don’t believe everything you read on the Internet.

Q: I have a desktop/laptop with Windows XP. Will I continue to get automatic updates for JDK 7 when Oracle release a security update?
A: Yes, at least until the End of Public Updates for JDK 7 which is currently scheduled for April 2015 (Java Support Roadmap).

Q: What happens after the End of Public Updates for JDK 7?
A: We will continue monitor the uptake of Java 7 updates on Windows XP. If usage remains high when we get close to that milestone, we will take measures to keep Java users safe. There are several options available to us if that becomes necessary.

Q: Can I install JDK 8 on Windows XP? Will it work?
A: Yes, as long as you install JDK 8 Update 25 or later. Earlier updates of JDK 8 had an installer issue that prevented installation in Windows XP.

Q: My company is using Windows XP Embedded which is still supported by Microsoft. Will Oracle support this?
A: We have never officially supported Windows XP Embedded with any current Java version. However, as long as Microsoft provides support for Windows XP Embedded we could consider it. Contact Java sales in your region if you have a need for this.

Tuesday Jun 03, 2014

Oracle and Cavium to work together on Java SE 8 on 64-bit ARMv8

We have been working for some time on a standard Oracle JDK 8 port to the upcoming introduction of 64-bit servers based on the new ARMv8 micro architecture. At ARM TechCon 2013 in Santa Clara, California, we announced a roadmap with an expected GA in 2015. This project is going very well and is ahead of schedule. We will soon be at the point where we will make binaries available outside of Oracle - first in a managed beta program with select customers/partners, and sometime during the fall of 2014 as a public early access program. Unless something changes, we are looking at a early 2015 GA. We should be able to share a detailed ramp down and GA plan by JavaOne 2014.

One of the things we (obviously) need to produce a high-quality port is hardware for development and QA. We are therefore happy to announce that we will be collaborating with Cavium on this project. Cavium has been a supporter of the Java ecosystem for a long time and we have numerous joint customers running various Java versions on Cavium MIPS and ARM-based hardware. Cavium has now agreed to provide us with development hardware and engineering resources so that we can certify and optimize the initial Oracle JDK 8 release on Cavium's ThunderX hardware. This is expected to improve quality and performance of JDK 8 on ARMv8 in general, as well as on Cavium's hardware.

For more information:

As a reminder, we plan to release the Oracle JDK 8 port to 64-bit ARMv8 under the royalty-free (for general purpose servers etc) Binary Code License, but we have no current plans to open source it.

Thursday May 22, 2014

Oracle announces plans for Java on MIPS

Today at the Imagination Summit in Santa Clara, California, Oracle and Imagination Technologies announced a collaboration around Java and the Internet of Things (IoT). Imagination is an semiconductor R&D and IP licensing company, and the owner of the PowerVR GPU and MIPS micro-architectures. This collaboration between Oracle and Imagination Technologies includes:

  • Porting and optimizing Java for MIPS for embedded and server-side applications. The current plan is to provide three different configurations:
    • The initial port will be Java SE Embedded 8 for 32-bit MIPS R2 embedded SoCs. This is still in planning but is expected some time in the first half of CY2015 (subject to change etc). This will be preceded by an extended early access program.
    • Java SE Embedded 8 will later add support for 32-bit MIPS R6.
    • Finally, we are also planning for a 64-bit MIPS R6 port. This will more likely be a general-purpose Oracle JDK 8 port aimed at servers and network equipment.
  • JavaFX support for the PowerVR GPU family. The initial target for this work will be headful embedded SoCs.
  • Collaboration around Java standards for the Internet of Things. Imagination Technologies will join the Java community and work with Oracle and other community members in this area.

MIPS has historically been somewhat fragmented in terms of multiple partially incompatible implementations, and lack of a unified source for development tools and OS support. Imagination is taking steps to address this issue with its SoC partners through the recently announced prpl open source foundation, which will work to unify and stabilize support for Linux, virtualization, open source tools and related things. Oracle is strongly supportive of this initiative.

Imagination is the latest of a large set of companies and organizations that have joined the Java ecosystem, or expanded its activity, since the Oracle acquisition of Java from Sun Microsystems in 2010. Oracle is very pleased to welcome Imagination Technologies and the MIPS ecosystem into the Java family, and is looking forward to extending this collaboration to the broader MIPS ecosystem!

Thursday Oct 31, 2013

ARM TechCon 2013: Oracle, ARM expand collaboration on servers, Internet of Things

If you have been following Java news, you are already aware of the fact that there has been a lot of investment in Java for ARM-based devices and servers over the last couple of years (news, more news, even more, and lots more). We have released Java ME Embedded binaries for ARM Cortex-M micro controllers, Java SE Embedded for ARM application processors, and a port of the Oracle JDK for ARM-based servers. We have been making Java available to the Beagleboard, Raspberry Pi and Lego Mindstorms/LeJOS communities and worked with them and the Java User Groups to evangelize Java as a great development environment for IoT devices. We have announced commercial relationships with Freescale, Qualcomm, Gemalto M2M, SIMCom to name a few. ARM and Freescale on their side have joined the JCP, recently been voted in as members of the Executive Committee, and have worked with Oracle to evangelize Java in their ecosystem.

It is with this background, Nandini Ramani, Vice President, Java Platform at Oracle, announced a expanded collaboration with ARM in a TechCon 2013 keynote titled "Enabling Compelling Services for IoT". To summarize the announcement:

  • ARM and Oracle will work together on interoperability between the ARM Sensinode communications stack (based on CoAP, DTLS and 6LoWPAN) and Oracle's Java ME, Java SE and middleware products.
  • ARM will donate the Sensinode CoAP protocol engine to OpenJDK to stimulate broad adoption of the CoAP protocol, and work with Oracle to extend the relevant Java specifications with CoAP support. CoAP (Constrained Application Protocol) is an IETF specification that provides a low-bandwidth request/response protocol suitable for IoT applications.
  • ARM will work with Oracle and Freescale to enable the mbed Hardware Abstraction Layer (HAL) to act as a portability layer for Java ME Embedded. Oracle will enable mbed as a tier one platform for Java ME Embedded. Over time, this effort will allow any mbed-enabled platforms (mostly based on Cortex-M microcontrollers) to work with off the shelf Java ME Embedded binaries, extending the reach of Java ME into IoT edge nodes.
  • In Nandini's keynote, Oracle showed a roadmap to port the Oracle JDK for Linux on 64-bit ARMv8 servers in the 2015 time frame, preceded by an extended early access program. We expect this binary to have full feature parity with Oracle JDK on other platforms, and be available under the same royalty-free license. This effort has been going on for some time, but is now accelerated due to availability of hardware from Applied Micro. Oracle will be working with Applied Micro on the ARMv8 port, and on optimizing Java for their X-Gene products.
  • Oracle and ARM will work closely on IoT architecture, and on evangelizing Java on ARM for both servers and IoT devices.

These announcements reinforce Java's position as a first-class citizen in the ARM ecosystem, and signal a commitment from us to collaborate on driving standards and open ecosystem for the Internet of Things. If you are active in this area and not already in touch with us, or interested in learning more - please reach out to us!

Tuesday Sep 10, 2013

Oracle JDK 7u40 released - security features, hardfloat ARM, Java Mission Control and more

Oracle JDK 7 Update 40 is now available. This release introduces the following new features:

  • Java Mission Control. This is an advanced monitoring/diagnostics tool inherited from JRockit, now fully supported on the JDK 7. Also adds new features such as a DTrace plugin.
  • Java Flight Recorder, again a feature ported over from JRockit. This is a really cool feature that enables you to record events and metrics during runtime, and then extract them at will. You can even dump all or part of the data on a user-defined alert. Eg, "Why did that transaction take more than 1 second? Give me the last 10 seconds of data in your buffer so that I can figure out what went wrong."
  • Support for the Apple Retina display with Swing/AWT and JavaFX.
  • A new JDK binary for hardfloat Linux/ARM, for ARM-based micro servers and development boards. Yes, this means that we now have official JDK 7 support for the default Raspbian Linux distribution for the Raspberry Pi.
  • A new Deployment Rule Set feature to enable fine granular controls for execution of Applet and WebStart applications.
  • Security feature enhancements for applets, JAXP and x.509 certificates.

The new update of the JRE and the JDK are available from OTN. For more information, see the release notes.

For Mission Control, a great source of information is Marcus Hirt's blog (thanks, Marcus!).

Monday Jun 10, 2013

TZUpdater for JDK 7 available (again)

The Timezone Updater Tool (aka TZUpdater) is available for public download from OTN [1] again.

On March 8, 2013, as part of maintenance tied to the end of public updates for Oracle JDK 6, the "Timezone Updater Tool" [2] was removed from OTN, with just a short note that this tool was now only available for Oracle Java SE Support customers. An unintentional side effect of this change was that it became impossible to keep Oracle JDK 7 up to date without a support contract, which is not in line with our policy: The most recent version of the Oracle JDK will always be available royalty free (including any tools required to keep it up to date).

The function of the TZUpdater tool is to enable an Oracle JDK or JRE user to patch their installation with the most recent timezone data. Our goal is to make sure that the most recent version of the JDK and JRE always contain the most recent timezone data, so that there is rarely need for a separate TZUpdater tool - you just upgrade to the most recent JDK/JRE. However, this is not always possible given the timing of the timezone updates and has specifically not been true over the past several months. We are reviewing our development process to determine what guarantees we can put in place for the gap between a timezone update and it being available in a public JDK/JRE release, and will also continue to make TZUpdater available for the most recent JDK version whenever it is needed to keep the most current JDK/JRE up to date.

For users who require updates and supportability tools for older versions of the Oracle JDK, we continue to recommended Java SE Support [3] which provides long term support.

To all of those in the Java community who were affected by this, we apologize for any confusion or inconvenience we caused, and we are grateful to those of you who reached out to us directly to bring this to our attention. As always, several Java User Group leaders and Java Champions were diligent and helpful - Stephen Colebourne, in particular, provided detailed, helpful technical analysis from a community perspective.

[1] -
[2] -
[3] -

Thursday Apr 18, 2013

Updated release schedule for Java 8 proposed

Mark Reinhold has posted a blog with a proposal to delay the release of Java 8 to the first quarter in 2014. For full detail on the background and details on this, see his blog. For details on the proposed schedule, see his post to the OpenJDK mailing list.

Oracle JDK 7u21 released with new security features

Oracle has released a Critical Patch Update for Java, which includes updates to JDK 6 and 7. More information on the CPU content can be found on and in the release notes (7u21, 6u45). The JDK 7 Update also introduces a number of feature enhancements intended to improve security. For more information on these features, see the release notes.

The releases are available from the following download sites:

Q: Is there a JDK 6 Update available as well?
A: Yes, we continue to make JDK 6 Updates available to Oracle support customers through My Oracle Support for the full commercial lifetime of the product (currently December 2016). Also, although we have passed the End of Public Updates milestone, we decided to push out one additional public update of JDK 6 in order to make the security fixes in this CPU more broadly available.

Q: Will there be any more public updates of JDK 6?
A: No, we are not planning any more public JDK 6 updates. As of the next release which is scheduled for June we plan to move JDK 6u45 to the Oracle Java Archive.

Q: I want to continue to have free access to the Oracle JDK. Do you have any suggestions on how to migrate to JDK 7?
A: Yes, see my previous blog on this topic.

Q: I am an enterprise and need continued access to JDK 6. How do I go about getting continued support for Oracle JDK 6?
A: If you are an Oracle middleware or applications customer, support for the JDK used for your application is included in your support contract. You can also sign up for Java SE Support which extends support to our JDK when used with any custom or 3rd party application.

Q: Is Java SE Support price list publicly available?
A: Yes, see Current pricing (April 17, 2013) is $5 per desktop and $250 per processor on servers, per year. For large volumes, contact Oracle Sales.

Sunday Feb 24, 2013

Java in Steam Store

If you are even remotely into PC gaming, you must be familiar with Steam. And if you are familiar with Steam, you are most likely aware that they recently announced the GA version of Steam for Linux. I for one hope that this might finally signal an advent in Linux as an accepted and broadly used platform for PC gaming. One nice side-effect is that Java might get more adoption in this space, such as for casual games (Angry Birds is a good example) and for any game which doesn't require absolute 100% control over the hardware to be performant (Minecraft falls in this group). The benefit of Java is clear; porting cost between different platforms goes down. It may not be write-once-run-anywhere depending on how you use native libraries but certainly easier than porting a native game.

With this in mind, I was very happy to see this blog about Java on Steam from Puppy Games. They have built a wrapper library around the Steam APIs and use LWJGL as a graphics library. Other options would of course be JOGL or - as it matures - JavaFX, which will very soon be fully open sourced through the OpenJFX project. A great simple example of a JavaFX game is this version of Pong which is written in less than 100 lines of code.

Kudos to Puppy Games for their initiative, and to Steam for going Linux!

Tuesday Feb 19, 2013

Migrating from Java SE 6 to Java SE 7

Why should I migrate from SE 6 to SE 7?

The most obvious reason is that you will get access to all the new features and improvements that we have made to Java with the introduction of Java 7.

A few of these changes might require some updates to your code, but they are changes that are well worth it from a performance, quality and readability perspective. You can find more information here:

Another important reason is the End of Public updates milestone for Oracle JDK 6. After February 2013, future JDK 6 updates will no longer be publicly available and old JDK 6 releases will me moved to the Java Archive. Running on an old version of Java is a bad idea, so now is the time to move to 7. For more information on the End of Public Updates milestone, see Java SE End of Life Policy

If you are unable to migrate some of your applications and need continued access to Oracle JDK 6 updates, Oracle offers long-term support through the Java SE Support program.

What do I need to do?

Option 1 – “Just run”

Java has binary backward compatibility. This means that if you have a program that has been compiled for and is running with Java SE 6, it will also run on a Java SE 7 JVM. Java SE 7 is strongly compatible with previous versions of the Java platform. Almost all existing programs should run on Java SE 7 without modification. However, there are some minor potential incompatibilities in the JRE and JDK that involve rare circumstances and "corner cases" that are documented here for completeness:

Option 2 – Re-compiling and modifying source code.

Most of the new features introduced with Java SE 7 are improvements on a Java code level. To benefit from these you will have to update your old source code, or use the new features in any new code you write, and recompile your code for Java SE 7.

The Netbeans IDE can help you find locations in the code where you can use some of the new features, see this link for details. Other major IDEs have similar features.

Some APIs have been marked as deprecated, which means we encourage you to use the replacement APIs instead. The deprecated APIs can be found here.

Also, some of the APIs in the sun.* packages have changed. These APIs are, and have always been, intended for internal use only and any use is “at your own risk”. It is strongly recommended to find alternatives to using these packages as soon as possible.

Oracle JDK 7u15 and 6u41 released

Oracle has released a Critical Patch Update which including updates to JDK 6 and 7. More information about this CPU is available on and in the releases notes (7u15, 6u41).

The JDK releases are available from the following download sites:

Note that this JDK 6 release is the final public update of JDK 6. For more information on the End of Public Updates milestone, see my previous blog on the topic.


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.


  • Oracle
« December 2016