我应该使用哪个 Class Loader?

Which Class Loader should I use?

JNDI 使用线程上下文 class 加载程序。 因为它的内容是由 bootstrap classes 在 rt.jar 中实现的 但核心 JNDI classes 可能会加载由独立供应商实现并可能部署在应用程序的 -class 路径中的 JNDI 提供程序。 父class加载器不能使用子class加载器加载class.

问题: 众所周知双亲委托模型的一个重要特征, 为什么不在所有地方使用系统 class 加载程序?子 class 加载器可以使用父 class 加载器加载 class.

我不太确定我理解你的问题。

尤其是在 JEE 运行时环境中,当前线程的上下文类加载器是您的最佳选择。

基本上这一切都归结为层次结构(它甚至可能被颠倒或在某处使用类似 OSGI 的东西)以及关于 classloader 层次结构中你 class 实际上在哪里的缺失知识位于。

多个 classloader 通常是必需的,因为有时需要相同 class、p.ex 的不同版本。在同一 JVM 上的不同应用程序中 运行。