我有一个关于 java ClassLoaders 的问题。我正在尝试使用不同的 ClassLoader 来在同一个程序中运行不同版本的 JAR。
我在某处听说,如果您使用一个 ClassLoader 加载一个类,则从该类中调用(正在加载)的所有类都将使用相同的 ClassLoader。它是否正确?
如果没有,是否有一种巧妙的方法来设置 ClassLoader 的上下文(比如说,从特定类/库调用的所有内容都应该使用相同的 ClassLoader)。
我有一个关于 java ClassLoaders 的问题。我正在尝试使用不同的 ClassLoader 来在同一个程序中运行不同版本的 JAR。
我在某处听说,如果您使用一个 ClassLoader 加载一个类,则从该类中调用(正在加载)的所有类都将使用相同的 ClassLoader。它是否正确?
如果没有,是否有一种巧妙的方法来设置 ClassLoader 的上下文(比如说,从特定类/库调用的所有内容都应该使用相同的 ClassLoader)。
这不是一个简单的主题,我建议在网上做更多的研究,因为这里的答案几乎不够深入。但是,作为一个简短的概要:
根据经验,在执行您知道来自嵌套类加载器的代码时(可能是因为您设置了它),您应该适当地设置当前上下文类加载器。