2011-03-26 15 views
6

Creo que entiendo cómo funcionan las jerarquías de carga de clases. (la JVM examina primero la jerarquía principal)¿Cómo creo un ClassLoader que no buscará las clases de carga en el principal?

Así que me gustaría crear un ClassLoader, o usar una biblioteca existente, que es un alcance completamente independiente, y no mira la jerarquía ClassLoading principal. En realidad, estoy buscando el mismo efecto de lanzar una JVM por separado, pero sin hacerlo literalmente.

Estoy seguro de que esto es posible, pero me sorprendió que fuera tan difícil encontrar un ejemplo simple de cómo hacerlo.

Respuesta

9

Simplemente use URLClassLoader y suministre null como padre.

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 
} 
Cuestiones relacionadas