我想我理解类加载层次结构是如何工作的。 (JVM首先查看父层次结构)
所以我想创建一个ClassLoader,或者使用一个完全独立的范围的现有库,而不是查看父ClassLoading层次结构。实际上我正在寻找启动单独JVM的相同效果,但实际上并没有这样做。
我确信这是可能的,但是很难找到一个如何做到这一点的简单例子。
答案 0 :(得分:10)
只需使用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
}