This module-info.java doesn't specify any platform
module and thus by default it will require the full JRE module
("jdk"). You can specify to require the
"jdk.base" module and any other platform module like
this:

Structuring the source tree

For module compilation, the java compiler needs to be able to find
the complete module content (module-info.java and
classes for each module in source form or in a compiled form). The
ModulePath is introduced to make javac module-aware that
can compile one or multiple modules. This section describes the
ModulePath briefly and please refer to Modules
and javac slides for details.

The module-info.java is placed in the root of the
source tree of the module's classes. For example, the root of the
source tree is under src/classes directory. To evolve
from single-module structure of ClassPath, its
module-info.java file should be placed under it.

src/classes/com/greetings/Hello.java
src/classes/module-info.java

For multiple modules, the source tree for each module are placed in
its own subdirectory under the <modulepath>
directory. For example, src is the ModulePath. The
source tree for com.greetings module and
org.astro module are in separate subdirectories under
the src directory.

This compiles all java files under the src directory
and outputs to the "modules" directory in multi-module
structure.

3. Install a module in a module library

A modular JDK has a system module library in which the platform
modules are installed. You can create your own module library using
the jmod command:

$ jmod -L mlib create # this creates a module library "mlib"

Each module library has a parent. By default, it uses the system
module library as its parent. The "-P" option can be
used to specify a parent module library. A module will be searched
from the module library first; if not found, it will delegate to
its parent.