Carregando .JARs de um diretório em tempo de execução

Bom… estou usando o HSQLDB para fazer uma aplicação com DB Standalone mesmo, e tenho .jars q eu gostaria de aproveitar na aplicação, como por exemplo o proprio hsqldb.jar. Entao ao inves de eu ficar colocando toda vez o hsqldh.jar no classpath do PC onde instalo a aplicação, apenas criei um diretório chamado LIBS e carrego todos .jars q eu quero via uma classe que preparei para esse tipo de necessidade.

import java.io.IOException;
import java.io.File;
import java.lang.reflect.Method;
import java.net.URL;
import java.net.URLClassLoader;

public class LoadingJars
{
private static final Class[] parameters = new Class[] { URL.class };

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 });
        System.out.println(u.toString());
	}
    catch (Throwable t)
    {
	    t.printStackTrace();
		throw new IOException("ERror, could not add URL to system classloader");
    }

}

public static void scanJars(String moduleFolder)
{

  File moduleDirectory = new File(moduleFolder);
  String classpath = System.getProperty("java.class.path");
  File[] moduleFiles = moduleDirectory.listFiles();
  for (int i = 0; i < moduleFiles.length; i++)
  {
      File moduleFile = moduleFiles[i];
           if ( moduleFile.getName().endsWith(".jar") || moduleFile.getName().endsWith(".dll") )
           {

              if(classpath.indexOf(moduleFiles[i].getName()) == -1)
              {
                    try
                    {
                       addToClasspath(new URL("file:/"+moduleFile.getAbsolutePath()) );
                    }
                    catch(IOException e){}

           }
           else
           {
            continue;
           }
 }

}
}

Utilização da classe:
Crie uma instancia dela na sua aplicação onde necessite os .jars no classpath e chame o metodo scanJars(Diretorio_onde_estao_os_jars)
Exemplo:
import java.util.;
import java.net.
;
import java.sql.;
import java.io.File;
import java.io.
;
import java.lang.reflect.Method;

public class ConnectTeste1
{
public Connection conn;

public void conecta( String dbfile ) throws Exception
{

 Class.forName("org.hsqldb.jdbcDriver");
 conn = DriverManager.getConnection("jdbc:hsqldb:"+ dbfile,"sa","");
 System.out.println("Connect OK!");

}
public void shutdown() throws SQLException
{
   Statement st = conn.createStatement();
    // db writes out to files and performs clean shuts down
    // otherwise there will be an unclean shutdown
    // when program ends
    st.execute("SHUTDOWN");
    conn.close();    // if there are no other open connection
    System.out.println("Cosed Connect OK!");
}

public static void main(String args[])
{

//==========Carregando bibliotecas necessárias//
LoadingJars lj = new LoadingJars();
String moduleFolder = System.getProperty("user.dir")+ "/libs";
lj.scanJars(moduleFolder);
//System.out.println(System.getProperty("java.class.path"));

String dbfile = System.getProperty("user.dir") + "/db/teste";
ConnectTeste1 teste = new ConnectTeste1();
try
{
    teste.conecta( dbfile );

}
catch (Exception ex1)
{
     System.out.println("EX1 acionado!");
     ex1.printStackTrace();    // could not start db
     return;                   // bye bye
}
try
{
teste.shutdown();

}
catch( SQLException ex3 )
{
   ex3.printStackTrace();
}

}// fim main

}// fim class

ESPERO TER AJUDADO! Pelo menos pra mim funcionou tranquilo.