Joh*_*nst 7 java java-platform-module-system java-9
在即将发布的Java 9中,有没有办法动态发现哪些模块可用?
例如:
我不能从文档中说出来.
我认为不支持这种动态功能.目前,ModuleFinder.findAll()的文档指出:
A
ModuleFinder提供了它所找到的模块的一致视图.如果findAll多次调用,则每次返回相同(等于)的结果.
这取决于你愿意去的长度......
默认情况下,该模块系统是从用户代码中隐藏得很好,没有API来告诉模块系统重新评估给定的命令行(例如--module-path,--add-exports...).所以立即回答是"不,你不能通过修改模块路径来改变应用程序."
但是,您可以创建一个新图层,其中包含一个全新的模块图.启动JVM时,它将从命令行标志和模块路径内容创建单个层.使用现有API,您可以在该API之上创建新图层.
要了解图层,请查看模块系统的状态和JavadocModuleLayer.