I am trying to use multiple Oralce JDBC drivers to connect to 2 Oracle databases by followed the instruction from this Question.
I have ojdbc6.jar
in the classpath of the default ClassLoader to connect to Oracle 11g.
To connect to another database, Oracle 8i, I wrote a code as follows
File driverJar = new File("D:/workspace/ccbs/lib/classes12.jar");
String driverClassName = "oracle.jdbc.OracleDriver";
String con = "jdbc:oracle:thin:@db1host:5555:db1";
URL[] classpath = new URL[] {driverJar.toURI().toURL()};
URLClassLoader driverLoader = new URLClassLoader(classpath, ClassLoader.getSystemClassLoader());
Class driverClass = driverLoader.loadClass(driverClassName);
System.out.println(driverClass.getProtectionDomain().getCodeSource().getLocation());
In the last line, the location of the driver class is printed. Running the program and I got
file:/D:/workspace/ccbs/lib/oravl01/oracle/11.2.0.2/jdbc/lib/ojdbc6.jar
When I remove the ojdbc6.jar
from the classpath and run the program again, I got
file:/D:/workspace/ccbs/lib/classes12.jar
Please suggest why my custom URLClassLoader load the oracle.jdbc.OracleDriver
from ojdbc6.jar
in the default classpath instead of classes12.jar
in the custom classpath.