用什么方法可以升级或覆盖Java9中的模块?

用什么方法可以升级或覆盖Java9中的模块?,java,module,classloader,hierarchy,java-platform-module-system,Java,Module,Classloader,Hierarchy,Java Platform Module System,https://docs.oracle.com/javase/9/docs/api/java/lang/ClassLoader.html Java运行时具有以下内置类装入器: 引导类装入器。它是虚拟机的内置类装入器,通常表示为null,并且没有父类 平台类加载器。所有平台类对平台类加载器可见,平台类加载器可用作类加载器实例的父级。平台类包括JavaSE平台API、它们的实现类以及由平台类加载器或其祖先定义的特定于JDK的运行时类 为了允许升级/覆盖定义到平台类加载器的模块,如果升级的模块读取定义

https://docs.oracle.com/javase/9/docs/api/java/lang/ClassLoader.html

Java运行时具有以下内置类装入器:

引导类装入器。它是虚拟机的内置类装入器,通常表示为null,并且没有父类

平台类加载器。所有平台类对平台类加载器可见,平台类加载器可用作类加载器实例的父级。平台类包括JavaSE平台API、它们的实现类以及由平台类加载器或其祖先定义的特定于JDK的运行时类

为了允许升级/覆盖定义到平台类加载器的模块,如果升级的模块读取定义到平台类加载器及其祖先以外的类加载器的模块,则平台类加载器可能必须委托给其他类加载器,例如,应用程序类加载器。换句话说,定义给类加载器(平台类加载器及其祖先除外)的命名模块中的类可能对平台类加载器可见

系统类加载器。它也称为应用程序类加载器,与平台类加载器不同。系统类加载器通常用于定义应用程序类路径、模块路径和JDK特定工具上的类。平台类加载器是所有平台类都可见的系统类加载器的父级或父级

问题:

1.如何覆盖或更新模块

2.它似乎有两个应用程序类加载器(例如AppClassLoader A、AppClassLoader B),A可以通过其公共父平台类加载器加载从B加载的类。比如:A->Platformclassloader->B->X.class.但是既然在JVM进程中是一个单实例,那么怎么可能有两个应用程序类加载器呢