gpt4 book ai didi

java - 是否可以在 Java 9 中动态加载和卸载 jdk 和自定义模块?

转载 作者:IT老高 更新时间:2023-10-28 20:35:24 29 4
gpt4 key购买 nike

我是 JPMS 的初学者,无法理解它的活力。例如,在当前 JVM 实例中 moduleA.jar 正在运行。 moduleA 只需要 java.base 模块。现在,我想要

  1. 动态加载需要java.sql模块和moduleC.jar
  2. moduleB.jar
  3. moduleB
  4. 执行一些代码
  5. 从JVM卸载moduleBjava.sqlmoduleC并释放所有资源。

可以在Java 9模块系统中完成吗?

最佳答案

这是一个高级主题。在高层次上,模块系统不是动态的,因为单个模块不能在正在运行的 VM 中卸载或替换。但是,您可以使用 API,特别是 java.lang.module.Configurationjava.lang.ModuleLayer 来创建模块的动态配置并在运行的 VM 中将它们实例化为一层模块。在您的场景中,您可以使用模块 B 和 C 创建一个模块层。一旦没有对它们的引用,这层模块将被 GC'ed/unloaded。

正如我所说,这是一个高级主题,在进入动态配置和模块层之前,最好花时间掌握基础知识,包括服务。

关于java - 是否可以在 Java 9 中动态加载和卸载 jdk 和自定义模块?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46112809/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com