0% found this document useful (0 votes)
358 views

Java 9 Modules Cheat Sheet

This document provides a cheat sheet for the Java Platform Module System, summarizing key Java command line options, module declaration terms like requires and exports, module access levels like open and export, module types like Java SE modules and application modules, and Manifest attributes for non-modular jars. It outlines mechanisms for compile time access like export and open package as well as default access levels and explains automatic modules for non-modular jars on the module path.

Uploaded by

Shobhit Shukla
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
358 views

Java 9 Modules Cheat Sheet

This document provides a cheat sheet for the Java Platform Module System, summarizing key Java command line options, module declaration terms like requires and exports, module access levels like open and export, module types like Java SE modules and application modules, and Manifest attributes for non-modular jars. It outlines mechanisms for compile time access like export and open package as well as default access levels and explains automatic modules for non-modular jars on the module path.

Uploaded by

Shobhit Shukla
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 1

Java Platform Module System Cheat Sheet

Java command line options


module module.name - declares module.name --module-path or (-p) is the module path; its value --add-modules - adds the indicated modules to the
is one or more directories that contain modules. default set of root modules.
requires module.name - this module depends on
module module.name --add-reads src.module=target.module - --list-modules - displays the names and version strings
a command-line form of a requires clause in a of the observable modules.
requires transitive module.name - this means that module declaration.
any module that reads your module implicitly also reads the --patch-module - adds or overrides classes in a module.
transitive module or module specifically referenced. --add-exports src.module/pkg.name=target. Replaces -Xbootclasspath/p.
module - a command line form of an exports clause.
exports pkg.name - this module exports public members
--illegal-access=permit|warn|deny -
in package pkg.name
--add-opens src.module/pkg.name=target.module relaxes strong encapsulation of the module system;
- a command line form of the open clause in a module Java 9 default is permit.
exports pkg.name to module.name - this module
description.
allows the target module to access public members in
package pkg.name
Mechanism Compile Access
uses class.name - this module declares itself as a
consumer for service class.name Export all code public all code public

provides class.name with class.name.impl -


provides an implementation of a service for others
to consume Open Package none all code private
opens pkg.name
members of package pkg.name
none

opens pkg.name to module.name - opens private Open Module none all code private
members of package pkg.name to the given module
Default none none

Manifest attributes Module types


Automatic-Module-Name: module.name - declares Java SE and JDK modules - modules provided by JDK: Automatic module - non-modular jar on the
stable module name for non-modularized jar java.base, java.xml, etc. module-path; exports all packages; name
Add-Exports: <module>/<package> - exports the derived from the Automatic-Module-Name
package to all unnamed modules Named application module - your application modules; MANIFEST.MF
Add-Opens: <module>/<package> - opens the package contains module-info.class; explicitly exports packages; can read all modules.
to all unnamed modules can't read the unnamed module.
Unnamed module - all jars/classes on
the classpath; can read all modules.

www.jrebel.com

You might also like