This specification defines the Java Platform Module System.
As described in the JSR, the goals of the module system are to provide
Reliable configuration, to replace the brittle, error-prone class-path mechanism with a means for program components to declare explicit dependences upon one another, along with
Strong encapsulation, to allow a component to declare which of its public types are accessible to other components, and which are not.
These goals are achieved 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 EDR specification contains:
Changes to the Java Language Specification (JLS) and the Java Virtual Machine Specification (JVMS) in support of module declarations, along with a summary of changes to align the entire JLS with the module system.
A draft of the JLS, with change bars and dark blue text to indicate additions and changes for the module system as summarized in the previous document. (Unrelated changes also in progress for Java SE 9 are red for addition and light blue for change.)
Changes to the Java SE Platform API Specification, and the detailed differences. (The detailed differences contain a few changes that are unrelated to this specification but impractical to omit; in case of conflict the API specification is authoritative.)
Changes to the Java Native Interface Specification (JNI).
Changes to the JVM Tool Interface Specification (JVM TI).
Changes to the Java Debug Wire Protocol (JDWP).
A future version of this specification will include changes to the class-file chapter of the JVMS as detailed here, and to the access-control rules in accordance with the JLS draft.
Related external documents which may be of interest include:
The issue summary, which documents the history and status of issues raised, considered, and resolved thus far.
A design overview, which as of this writing is slightly out of date in some of the more advanced details but is nonetheless a useful overview of the essential concepts.
These two documents are cited for information only; they are not part of this specification.