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>
据说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>