Oracle Treiber Pfad

Laocoon

Erfahrenes Mitglied
Hallo Zusammen,

mir fehlt grad irgendwie der Ansatz. Ich muss über Java eine Oracle Datenbank ansprechen. Das funktioniert soweit auch (über Class.forName("oracle.jdbc.driver.OracleDriver") und OracleDataSource). Das Problem ist nur, dass ich den Treiber nicht mitliefern kann/darf und deshalb den Treiber nehmen muss, der bei Oracle dabei ist. Netterweise soll das ganze, dann auf Linux/UNIX/Windows laufen.

Mein Programm wird als jar Datei ausgeliefert. Allerdings muss ich hier den Classpath fest setzten, damit es funktioniert (Class-Path /orasw/jdbc/lib/ojdbc14.jar).

Code:
Class-Path $ORACLE_HOME/jdbc/lib/ojdbc14.jar

funktioniert nicht (unter Windows sowieso schonmal gar nicht^^).
Ich brächte mal nen gedanklichen Stupser, damit ich weiter komm.

MfG
Daniel

P.S.: Im Prinzip muss ich auch noch zwischen MS_SQL und ORACLE unterscheiden. Wenn also dazu jemand noch nen Klugen Vorschlag hat, wie man das am elegantesten (mit java 1.4) hin bekommt, bin ich ganz Ohr :)
 
Hallo!

Wenn du die OracleDataSource verwendest, dann brauchst du den Treiber nicht selbst zu laden...
der DriverManager macht das intern schon selbst...

1) Du könntest einen eigenen (URL)ClassLoader verwenden dem du die zusätzliche Jar-Location dynamisch per Reflection unterschiebst.
2) Du könntest entsprechend platformspezifische Startskripte schreiben die dann den Java Launcher mit entsprechendem Classpath aufrufen.
3) Du könntest versuchen -Xbootclasspath/p den (Boot)Classpath um das entsprechende JDBC-Treiber-jar zu erweitern.
...

Alles in allem wirst du (außer bei der ersten Lösung) nicht drum herum kommen, entsprechende platformspezifische Startskripte zu schreiben.
Bzw. einen nativen Launcher zu generieren der dann die JVM hochzieht (wie das beispielsweise Eclipse macht).

Gruß Tom
 
Jo,

schon mal danke für die Antwort. Ich bastel grad an einer Lösung mit dem ClassLoader. Hab dazu auch noch nen altes Posting von Dir gefunden, Thomas. Damit kann man ja schon mal einiges anfangen :).

Mal sehen, was draus wird.

MfG
Daniel
 
Zurück