我需要一种方法来告诉新创建的类装入器(没有设置父类)我想要公开的模块(例如java.scripting)。
在命令行上传递--add-modules的反射等效于什么?
发布于 2017-06-07 14:11:03
在启动时,根本没有编辑JVM创建的模块图的编程方法(添加读边是唯一的例外)。这是为了确保运行中的应用程序的安全和稳定而故意做出的决定。(例如,如果您运行在不包含java.scripting模块的运行时,您的代码会发生什么变化?)
但是,您可以做的是创建一个新的层,其中包含一个全新的模块图。启动JVM时,它将从命令行标志和模块路径内容创建一个单层。使用现有的API,您可以在该API的基础上创建新的层。要了解层,请看一下模块系统的状态和ModuleLayer。
https://stackoverflow.com/questions/44403879
复制相似问题