各种资源(infoq、jigsaw-dev、osdir)表明,在不同的 java 模块中拥有相同的包将导致 a LayerInstantiationException
,即使包在模块内部(非导出)也是如此。
这似乎与要求所说的完全相反:
Java 编译器、虚拟机和运行时系统必须确保包含同名包的模块不会相互干扰。如果两个不同的模块包含同名的包,那么从每个模块的角度来看,该包中的所有类型和成员都仅由该模块定义。
那么(将)应用程序使用的两个模块是否能够包含同名的私有包?
编辑
这是Stanislav Lukyanov 指出的 JMPS问题