Compile it with javac using various valid "--release r" variants
yields different module descriptors in addition to the generated
class file version.
For JDK N, javac seems to include the version of a required
module only if you omit the release option or if you pass r = N.
For example, when having JDK 13.0.1 installed, the String
representation of module foo is:
What is the reason for this behaviour regarding
compiled version of requires directives?
Find the log of a MVE  at .
Additionally, I checked the following tools:
- "jdeps" also emits the version of "java.base"
- "jar --describe-module" does not emit the version of "java.base"
- "javap" does not emit the version of "java.base"
A side(?) effect of this can also be seen at , which
shows the result of running jdeps --check org.junit.platform.engine.
The only difference of the actual and the suggested
module descriptor are the versions attached to the