This is not how modules work in Jigsaw (the Java 9 module system). You either provide an explicit module definition in the
module-info.java, in which case the artifact used on the module path would be loaded as an explicit module by the module system, or you don’t, in which case that artifact is loaded as an “automatic” module, which is sort of a middle ground between the beautiful and ordered world of explicit modules, and chaotic and unsafe world of unnamed modules (aka classpath). Both module types, explicit and automatic, can be used at runtime in a Java 9 application. However, unfortunately,
jlink specifically cannot handle automatic modules.
Please refer to the Java 9 module system docs for more info on modules and how are they defined: http://openjdk.java.net/projects/jigsaw (I especially recommend the State of the Module System document, although it’s slightly outdated).