Ready for InfoQ 3.0? Try the new design and let us know what you think!

Java 11 Released

| by Ben Evans Follow 35 Followers on Sep 25, 2018. Estimated reading time: 2 minutes |

Java 11 has arrived. The new release is the first planned appearance of Oracle's long-term support (LTS) releases, although Oracle has also grandfathered in Java 8 as an LTS release to help bridge the gap between the old release model and the new approach.

The feature list for the new version has only evolved modestly since InfoQ reported on this earlier in the year, and the major new features in Java 11 are:

  • Nest-based access controls (aka "Nestmates"): revisits the implementation of inner classes and eliminates the need for compilers to insert bridge methods.
  • Dynamic class-file constants (aka "condy"): reduces the cost and disruption of creating new forms of materializable class-file constants and opens the door to new performance and platform approaches.
  • ZGC (Experimental): a brand-new garbage collector designed for sub-10ms pause times (even on large heaps) with an aim of no more than a 15% performance penalty.
  • Flight Recorder: low overhead data collection framework for troubleshooting Java applications and the HotSpot JVM, previously a commercial feature, now open-sourced.
  • New standard HTTP library: A new module that standardizes the incubating API and allows flow-based HTTP/1.1 and HTTP/2 support
  • TLS 1.3: Implement the recently standardized new version of Transport Layer Security
  • Local-Variable Syntax for Lambda Parameters: Updating the lambda syntax to use the var type-inferencing introduced in Java 10.

The new release also removes some older features to try to streamline the core Java product:

  • Java EE and CORBA Modules: Require applications to explicitly depend upon EE and CORBA modules if they require them.
  • Web Start: This feature has been removed with no clear replacement.
  • Applets: These have been heavily deprecated for some time and are finally removed.
  • JavaFX: The FX libraries have moved to the OpenJFX project and are removed from the core.

In particular, the EE modules contain the support for JAXB and SOAP - both components that are still in relatively widespread use in many enterprises. Development teams that upgrade to the new version should check carefully whether they will need to modify their build scripts to take these changes into account.

Georges Saab, vice president of software development in the Java Platform Group at Oracle, commented on the new LTS model for Java:

The LTS model releases enable our customers to migrate from one well-supported Java SE LTS release to the next at their own pace, while at the same time allowing the Java developer ecosystem to get access to improvements faster than before.

Examples of the new features can be seen in a presentation from earlier this year and some of the new class file format changes (including condy and nestmates) are discussed in an interview with Rafael Winterhalter, creator of ByteBuddy.

Java 11 will be available for download from Oracle's official download site and from other vendors but at press time the website had yet to be updated. The support model for Java 11 has changed from previous versions, and InfoQ has previously reported on the details of the new model.


Rate this Article

Adoption Stage

Hello stranger!

You need to Register an InfoQ account or or login to post comments. But there's so much more behind being registered.

Get the most out of the InfoQ experience.

Tell us what you think

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread

Re: JavaFX by Andres Almiray

It's worth noting a few things about JavaFX. This post states "JavaFX: The FX libraries have moved to the OpenJFX project and are removed from the core."

JavaFX was open sourced by the end of 2012 as OpenJFX, a project under the OpenJDK umbrella. JavaFX was never part of Java SE, which means its APIs are not governed by a JSR. JavaFX has been removed from Oracle JDK starting with Oracle JDK 11 (the binary release of OpenJDK created and branded by Oracle) but remains an integral part of the OpenJDK projects.

Since 2012 anyone consuming OpenJDK directly and wanted to build/run JavaFX applications had to make an additional download as builds of OpenJDK did not include the binaries from OpenJFX. This is now the case for everyone, as so far, not a single distribution based on OpenJDK includes the OpenJFX binaries.

Re: JavaFX by Ben Evans

Thanks for the extra detail, Andres. This is really good additional clarification.

Hung Nguyen by Hung Nguyen

Anyone has any update on the progress of the project Vahalla? When will it be made into the language?
I believe that, until the language features as promised in project Vahalla bring into Java, nobody will bother with upgrading to the new Java 11 or even Java 12. The fact is that most people are still stick with Java 8 now.

Java 11 by Vinil Pillai

Thanks for the info. And we are still stuck with Java 7, hope we migrate soon over to the later versions of Java.

Re: Java 11 by Ben Evans

Hi Vinil,

I would strongly suggest that you migrate from Java 7 as a critical priority. That version is not supported any more and has hundreds (if not thousands) of security and other bugs. It is also much less performant than Java 8.

Java 7 -> Java 11 would be a huge, and painful upgrade, so I would suggest that you migrate to a free OpenJDK 8 build - perhaps either Azul Zulu or AdoptOpenJDK. These will be supported for some time to come (whereas the Oracle JDK will stop being supported in Jan 2019, except for paying customers of Oracle).

Re: Hung Nguyen by Ben Evans

Valhalla, as a project, delivers prototypes of features, that are then moved to mainline. For example, the "Nestmates" feature of Java 11 came from Valhalla originally (it doesn't do much by itself, but it prepares the ground for some features, such as sealing and maybe algebraic data types, to come later).

Value types had an initial power-user prototype (LW1) a couple of months ago, but they are still a long way from landing. Oracle make no representations as to when they could actually arrive. Given the state of the current prototype I would say at least another 12-18 months.

Personally, if I was starting a new greenfield Java project today (especially if it's microservices) then I would serious consider OpenJDK 11. It's an LTS release, the first LTS with modules and has some solid engineering and helpful features in it.

Support for JAXB and SOAP by Javier Paniza

Upgrade your production Tomcat to Java 11 and start to see your applications failing. Something new in the Java world.

A lot of developer rebuilding and testing applications without adding real functionality. A waste of time and money.

In my company, for example, we use JAXB extensively. Rewrite your applications which each new tecnology is exciting for developers but not so for users.

Re: Support for JAXB and SOAP by Ren Felix

All you need is slight update on build script to package JAXB module into you app since it is no longer shipped along with JDK. Nothing-else force applications being rewritten .

Re: Support for JAXB and SOAP by Javier Paniza

update on build script

So I need to rebuild my application, so my production applications will fail on upgrade my Tomcat. What if I have not access to the source code of the application? What if I need in the same Tomcat a Java 11 and Java 6 application (and I have not the source code)?

Re: Support for JAXB and SOAP by Ben Evans

The example of needing to run a Java 6 application (which has been EOL for over 5 years) that you don't have source for in the same conatiner as a Java 11 app seems really rather contrived.

The platform needs to move forward, and removing some small pieces of Java EE that should never have been added seems entirely sensible to me.

Re: Support for JAXB and SOAP by Ant hony

I believe everything should just work if you add the removed Java EE modules to Tomcat's "lib" folder (similar to how you add JDBC drivers). That way, you wouldn't have to change your apps.

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread

11 Discuss