Anticipating Java 9 - Functionality and Tooling

Looking ahead to what functionality is available in Java 9, and IntelliJ IDEA’s support (current and future) for it.

Slides

Java 9 Functionality and Tooling from Trisha Gee

Abstract

Seems like we’ve been waiting for Java 9 for eternity. We’ve been hearing all about Jigsaw since Java 7, so we’ll be forgiven for thinking that’s the most interesting thing about the next Java release. What we should be wondering is, will Java 9 it change the way we develop, like Java 8 did? Will my tools break when I try to use it? Is it worth playing with it before it comes out, or should I just wait until everything stabilises?

In this talk, Trisha will take a look at some of the features in Java 9, including modularity, the REPL, and the nice new Collections features. Trisha will demonstrate, via live coding, these features in IntelliJ IDEA, and talk a bit about the current and future support for Java 9 in IntelliJ IDEA.

Resources

Download the latest Java JDK here (the talk uses build 143).

At the time of writing, IntelliJ IDEA 2016.3 comes with some support for jigsaw. This support will continue to evolve, so keep an eye on the IntelliJ blog for further updates.

The Jigsaw code I used was from the Getting Started tutorial, and the Java REPL Tutorial helped me get started with JShell.

Help & Feedback

Get help and more information on JDK 9 from the Oracle Community feedback forum. If you find a genuine bug in the JDK, report it here.

You can report bugs and request features for IntelliJ IDEA in YouTrack. Some Java 9 tickets you may be interested in:
IDEA-161611: Java REPL support for Java 9
IDEA-154240: IDEA should work with JDK module system
IDEA-161641: Produce JLink Artefacts

More information

Joseph Darcy’s talk on JDK 9 Language, Tooling and Library Features from JavaOne is a good summary of what’s coming (slides also available).

Aurelio Garcia Ribeyro has a talk summarising all the features in Java 9, I can only find a summary version in Spanish

The OpenJDK wiki provides guidance on running your code with Java 9, and a list of libraries and frameworks who are currently testing against Java 9.