There are two module path values we pass to the javac and java commands--the module source path (passed to javac) containing the uncompiled Java source modules and the module path (passed to javac and java) containing the compiled Java modules. These options point to the locations of all the modules that are available for the compiler and the runtime to look up and use when necessary. Notice that we didn't have to add the path to the Java platform modules. That's because the Java runtime modules are included by default in the module path for compiling with javac and executing with java. You have to add the path only to the modules that are not a part of the platform, but you intend to include for compilation or execution.
This complete set of modules including modules in the module path that you supply to the platform and the out-of-the-box platform...