の指示に従って複数のOralce JDBCドライバを使用して2つのOracleデータベースに接続しようとしています。カスタムURLClassLoaderはカスタムクラスパスを使用しません
Oracle 11gに接続するデフォルトのClassLoaderのクラスパスにojdbc6.jar
があります。別のデータベースは、Oracle 8Iに接続する
ドライバクラスの位置が印刷される最後の行では、
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());
を次のように、私は、コードを書きました。プログラムを実行すると、私はクラスパスからojdbc6.jar
を削除し、再度プログラムを実行すると、私は、私は私のカスタムは、デフォルトでojdbc6.jar
からoracle.jdbc.OracleDriver
をロードするURLClassLoader理由を示唆してください
file:/D:/workspace/ccbs/lib/classes12.jar
を
file:/D:/workspace/ccbs/lib/oravl01/oracle/11.2.0.2/jdbc/lib/ojdbc6.jar
なってしまいましたカスタムクラスパスのclasses12.jar
ではなくクラスパス。
これは間違いなく良い解決策です。それを指摘してくれてありがとう – hammerfest