Whenever a class is referenced in a Java program, the class is loaded using the class loader from the JVM’s bootstrap or from the application-server. This often becomes a problem when you want to load two different classes with same name and same package declaration. For example, suppose your JVM’s class loader cannot load different versions of the same JDBC driver. Similarly, more than one version of the same JDBC driver (in order to connect to different versions of the same database) cannot be packaged into a single .war file. So how do you get around this problem? The answer lies in making a custom class loader to load classes directly from your .jar archives. See the code snippet below:
import java.net.*;import java.sql.*;...URL url=new URL("jar:file:/c:\myJars\oracle-jdbc7.jar!/");URLClassLoader ucl = URLClassLoader(new URL[] { url });Class.forName("oracle.jdbc.driver.OracleDriver", true, ucl);
This loads the required version of the driver class from the specified .jar file.
This is part of the Bottomline API. For more info visit http://bottomline.sourceforge.net.