RSS Feed
Download our iPhone app
Browse DevX
Sign up for e-mail newsletters from DevX

Tip of the Day
Language: Java
Expertise: Intermediate
Aug 26, 2008

Loading Classes Directly from .jar Archives

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.

Leonard Anghel
Close Icon
Thanks for your registration, follow us on our social networks to keep up-to-date