The Java Platform Module System ( JSR 376)

Working-Draft Specification

Mark Reinhold

2017/5/24 14:27 -0700 [9970793f0ae3]

This specification defines the Java Platform Module System.

The goal of this specification, as stated in the JSR, is to define an approachable yet scalable module system for the Java Platform. It must be approachable, i.e., easy to learn and easy to use, so that developers can use it to construct and maintain their own libraries, frameworks, and applications. It must be scalable so that it can be used to modularize the Java SE Platform itself, and its implementations.

This specification achieves that goal by providing two fundamental capabilities:

These capabilities are realized by treating modules as a fundamental new kind of program component that is defined by a construct of the Java programming language and interpreted uniformly at both compile time and run time.

This specification contains:

Related external documents which may be of interest include:

These two documents are cited for information only; they are not part of this specification.


This is a working draft of the specification. The following changes were made after the second Public Review Specification:

In the second Public Review Specification the API specification was updated to make two significant changes: