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

Reply via email to