Oracel JDBC Treiber aus Jar-datei nachladen

Hallo,

ich möchte gerne in meinem Javaprogramm den Oracel Treiber nachladen, und zwar zur Programmlaufzeit.

Der Benutzer sieht einen Dialog, in dem er den Pfad zur Datei ojdbc14.jar eingeben muss, sowie die Url, Benutzername und Passwort.

Der Pfad zur ojdbc14.jar ist also als String verfügbar. Die ojdbc14.jar leigt aber nicht im Classpath.
Wie kann ich „DriverManager.registerDriver(new OracleDriver());“ ausführen. (So dass Leuten, denen ich das PRogramm gebe später nur meine JAR-Dateiu ausführen müssen und sich werder mit classpath und ko auskennen müssen.)

Gruß Thomas

Problem gelöst

 public static java.sql.Driver sqlDriverloader(String path, String classname) throws Exception {
 URL url = new File(path).toURI().toURL();

 URLClassLoader cl = new URLClassLoader(new URL[] { url });

 Class\> c = cl.loadClass(classname);

 java.sql.Driver result = null;
 Object o = c.newInstance();
 if (o instanceof java.sql.Driver) {
 result = (java.sql.Driver) o;
 }

 return result;
 }

Problem dochnicht gelöst
Der Treiber wird regestriert, aber Zugriff auf DB klappt nicht, da der Treiber auf Classen auserhalb des CLASSPATH zugreifen will.

Weiß jemand von euch, wie der ClassPath zur Laufzeit des Programms erweitert werden kann.

gruß Thomas

Hi,

Du brauchst einen eigenen ClassLoader, dem Du den Pfad zu den Klassen mitgeben kannst.
Schau mal hier:
http://forum.java.sun.com/thread.jspa?threadID=30055…
da sind ein paar Lösungen angegeben. Aber bitte den Thread ganz lesen.

Gruss,
Herb