You are on page 1of 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