Java 9 个模块和 class 路径地狱:class 名称冲突

Java 9 modules and classpath hell: conflicting class names

据说java9个模块就能解决class路径地狱。 但是,我在考虑以下情况: 模块 A 使用模块 B 和 C。两个模块都将导出具有相同名称和包的 class。 class加载问题如何解决?

这种情况在Java9模块系统中是被禁止的。如果同层的两个模块有相同的包,Java 9 会启动失败,报错:

java.lang.LayerInstantiationException:
    Package <package_name> in both module <moduleB_name> and module <moduleC_name>