Rémi,
Generally, you should consider the runtime "module path" to be composed
of three elements: the upgrade module path (--upgrade-module-path), the
system modules (--system) and the user module path (--module-path).
Depending on your requirements, you may want to take --patch-module into
account as well. At compile time there is also the source path
(--source-path or --module-source-path) to consider.
While this may seem complicated, it is analagous of the pre-Jigsaw world of
-Xbootclasspath/p: -bootclasspath -Xbootclasspath/a: -classpath
(and -sourcepath at compile time)
-- Jon
On 6/3/18 12:43 PM, Remi Forax wrote:
Hi all,
There were discussions on that list [1] about the fact that beginning with Java
9, there were 2 ways to deploy modules, classpath vs module-path.
I've discovered last Friday there that are not 2 configurations but 3
configurations.
You can also use jlink [2] and in that case, the modules are not loaded though
the module-path but are considered as system modules, so a library should also
be tested with that configuration.
In my case, Spring Boot annotations scanning works with the classpath, works
with the module-path but fails if deployed as system modules [3].
regards,
Rémi
[1] http://mail.openjdk.java.net/pipermail/jigsaw-dev/2018-March/013689.html
[2] http://openjdk.java.net/jeps/282
[3] https://github.com/forax/pro-demo/tree/master/spring-demo