Project Jigsaw

The primary goals of this Project are to:

To achieve these goals we propose to design and implement a standard module system for the Java SE Platform and to apply that system to the Platform itself, and to the JDK. The module system should be powerful enough to modularize the JDK and other large legacy code bases, yet still be approachable by all developers.

Current documents, presentations, code, & builds


The reorganization of the source code (JEP 201) was merged into JDK 9 build 27, in August 2014.

The restructuring of run-time images to support modules (JEP 220) was merged into JDK 9 build 41, in December 2014.

JSR 376, for the Java Platform Module System, was approved by the JCP Executive Committee in December 2014.

The plan for encapsulating most internal APIs (JEP 260) was posted in August 2015.

The initial version of The State of the Module System, together with JEP 261 and the first early-access builds containing the prototype module system, were published in September 2015.

An ongoing list of open issues in the proposed specification was published in March 2016.

An updated version of The State of the Module System, with new material on compatibility and migration, was also published in March 2016.

The module system itself, specified by JSR 376 and implemented by JEP 261, was merged into JDK 9 build 111 in March 2016.

Older documents

Our current approach is informed by an earlier exploratory phase as well as a broader context and history.


This Project is sponsored by the Compiler Group.

Last update: 2016/12/21 22:10 UTC