The module system allows optional dependencies with the ‘requires static’ clause. Module required this way are accessible at compile time but can be absent at run time.
Java Platform Module System
The Java Platform Module System (JPMS), developed under Project Jigsaw and first shipped with Java 9 brings modularity to the Java platform and ecosystem. With it come strong encapsulation, reliable configuration, improved security, and better performance. But it also brings migration challenges, which might break your code and your tools.
To get started try the hands-on guide and from there explore other articles tagged with JPMS. For a thorough introduction including advanced features and a migration guide, get my book The Java 9 Module System.
If your company is currently planing a migration, you can hire me for on-site training or to assist you in your efforts.
In Java 9 a module must read another to be able to use its API. With implied readability a third module passes the dependency on, allowing the first to read the second without explicitly depending on it.