Ai pessoal estou precisando fazer uma aplicação na qual o classpath vai sendo modificado dinamicamente, na verdade o que ocorre e que eu preciso adicionar .jar dinamicamente e nao queria precisar reiniciar o serviço para isto, tem como fazer alguem ja fez?
ai… tres metodo que pode te ajudar…
public static void addToClasspath(String s) throws IOException {
File f = new File(s);
addToClasspath(f);
}
public static void addToClasspath(File f) throws IOException {
addToClasspath(f.toURL());
}
public static void addToClasspath(URL u) throws IOException {
URLClassLoader sysloader = (URLClassLoader) ClassLoader
.getSystemClassLoader();
Class sysclass = URLClassLoader.class;
try {
Method method = sysclass.getDeclaredMethod("addURL", parameters);
method.setAccessible(true);
method.invoke(sysloader, new Object[] { u });
} catch (Throwable t) {
t.printStackTrace();
throw new IOException(
"Error, could not add URL to system classloader");
}
}
cara boa dica, to tentando concluir ai mas nao estou conseguindo ver o que é o argumento parameters.
tava faltando somente
Class parameters = URL.class;
Isso!!! Esqueci
Na verdade o que tem aqui eh
private static final Class[] parameters = new Class[] { URL.class };