On 27/12/2020 09:50, Gunnar Morling wrote:
Thanks for clarifying, Alan. So it is intended and well-documented, it's still not quite clear to me though *why* that is. Wouldn#t it be more in line with the module system's goal of reliability to reject such error-prone configuration?
Reliable configuration is mostly about ensuring that there aren't missing dependencies, cycles between dependencies, or split packages. You get reliability with the module path by only reading the first definition of a module. If someone put 10 versions of the same module on the module path then classes will only be loaded from the first module, unlike the class path where you risk loading classes from more than one of the artifacts.

If it helps, the java --validate-modules option is useful for detecting and reporting issues. It will print an informational message when there are multiple definitions of a module on the module path.

-Alan

Reply via email to