segunda-feira, 18 de fevereiro de 2013

Carregando JARs dinamicamente

Para carregar arquivos .jar dinamicamente e depois acessar uma de suas classes, você pode usar a java.net.URLClassLoader, passando para ela um arquivo usando o protocolo jar e usando !/ ao fim da string. Por exemplo:

String jarPath = "file:///C:/dev/Java/jdk1.7.0_05/lib/tools.jar";
String className = "com.sun.tools.javac.api.JavacTool";

try {
// Monta a URL com o protocolo JAR e !/ ao fim do caminho do seu arquivo.
URL url = new URL( "jar", "", jarPath + "!/" );
// Configura o loader para carregar o JAR
URLClassLoader loader = new URLClassLoader( new URL[] { url } );
// Carrega sua classe
Class< ? > clazz = loader.loadClass( className );
System.out.println( "Carregada: " + clazz.getName() );
} catch ( MalformedURLException e ) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch ( ClassNotFoundException e ) {
// TODO Auto-generated catch block
e.printStackTrace();
}

Com isso, você pode, por exemplo, tentar carregar dinamicamente algum Jar usado para fazer uma conexão JDBC, sem precisar colocar todos os arquivos de vários bancos de dados em seu projeto. Fica a dica…

Nenhum comentário: