2011-03-26 2 views
6

클래스 로딩 계층 구조가 어떻게 작동하는지 알 것 같습니다. (JVM이 먼저 상위 계층 구조를 살펴 봅니다.)클래스를로드하기 위해 부모를 검색하지 않는 ClassLoader를 어떻게 만듭니 까?

그래서 ClassLoader를 만들거나 완전히 분리 된 범위 인 기존 라이브러리를 사용하고 부모 ClassLoading 계층을 보지 않습니다. 실제로 저는 별도의 JVM을 시작한 것과 같은 결과를 찾고 있습니다 만 말 그대로 그렇게하지는 않습니다.

나는 이것이 가능하다고 확신하지만, 그렇게하는 방법에 대한 간단한 예를 찾기가 너무 놀랍다.

답변

9

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 
} 
관련 문제