How modules fit into the Java landscape
As you can see from the following illustration, packages are comprised of classes and interfaces, and modules are comprised of packages. Modules are a container of packages. This is the basic premise, at a very high level, of Java 9's new modular system. It is important to view modules as part of the modular system and not simply as a new level of abstraction above packages, as the illustration might suggest.
So, modules are new to Java 9 and they, as you would expect, require declaration before they can be used. A module's declaration includes names of other modules in which it has a dependency. It also exports packages for other modules that have dependencies to it. Modular declarations are arguably the most important modular issue to address as you start developing with Java 9. Here is an example:
module com.three19.irisScan { // modules that com.three19.irisScan depends upon requires com.three19.irisCore; requires com.three19...