【发布时间】:2011-07-23 14:07:42
【问题描述】:
我想我了解类加载层次结构的工作原理。 (JVM首先查看父层次结构)
所以我想创建一个 ClassLoader,或者使用现有的库,这是一个完全独立的范围,并且不查看父 ClassLoading 层次结构。实际上,我正在寻找启动单独 JVM 的相同效果,但实际上并没有这样做。
我相信这是可能的,但很惊讶很难找到一个简单的例子来说明如何做到这一点。
【问题讨论】:
标签: java classloader
我想我了解类加载层次结构的工作原理。 (JVM首先查看父层次结构)
所以我想创建一个 ClassLoader,或者使用现有的库,这是一个完全独立的范围,并且不查看父 ClassLoading 层次结构。实际上,我正在寻找启动单独 JVM 的相同效果,但实际上并没有这样做。
我相信这是可能的,但很惊讶很难找到一个简单的例子来说明如何做到这一点。
【问题讨论】:
标签: java classloader
只需使用URLClassLoader 并提供null 作为父级。
File myDir = new File("/some/directory/");
ClassLoader loader = null;
try {
URL url = myDir.toURL();
URL[] urls = new URL[]{url};
loader = new URLClassLoader(urls, null);
}
catch (MalformedURLException e)
{
// oops
}
【讨论】: