8

我需要一种方法来告诉一个新创建的类加载器(没有设置父类)我想要暴露给它的模块(例如java.scripting)。

--add-modules在命令行上传递的反射等价物是什么?

4

1 回答 1

6

没有编程方法可以在启动时对 JVM 创建的模块图进行实质性编辑(添加读取边是唯一的例外)。这是一个深思熟虑的决定,以保持正在运行的应用程序的安全和稳定。(例如,如果您在不包含java.scripting模块的运行时上运行,您的代码会发生什么情况?)

但是,您可以做的是创建一个新层,其中包含一个全新的模块图。启动 JVM 时,它将根据命令行标志和模块路径内容创建一个单层。使用现有 API,您可以在该 API 之上创建新层。要了解层,请查看模块系统的状态ModuleLayer和.

于 2017-06-07T14:11:03.000 回答