What is an unnamed module in Java 9?

An unnamed module is a concept of the unnamed package. It is a module in which packages or classes can't be defined in any named module but exist in the jar file from classpath. If our code can try to load type from those files, the module system attempts to lookup classpath and loads it.

An unnamed module read all other modules, including all of the named, built-in platform modules, and also exports all of its packages. The package in an unnamed module can be ignored, which is also defined in the named module.

The unnamed module has access to:

  • All packages exported by all other modules available in module-path.
  • All the jars of the classpath (i.e. all the other types present in this unnamed module).


java --module-path out -module moduleName/com.tutorialspoint.UnnamedModuleTest


public class UnnamedModuleTest {
   public static void main(String args[]) {
      Module module = UnnamedModuleTest.class.getModule();
      System.out.println("Module: "+ module);
      System.out.println("Name: " + module.getName());
      System.out.println("isNamed: " + module.isNamed());
      System.out.println("Descriptor: " + module.getDescriptor());


Module: unnamed module @c818063
Name: null
isNamed: false
Descriptor: null