Probleme mit jar-Datei/SQL Server 2000-Treiber für JDBC

zwergzwerg

Mitglied
Hallo!

Ich habe ein Konsolenprogramm geschrieben, welches aus einer XML-Datei mittels jdom Daten in eine Datenbank schreibt. Ich habe das Programm aus NetBeans heraus getestet und es funktioniert (DB-Zugriff, Import). Nun wollte ich es von der Konsole heraus aufrufen. Habe also den Package-Ordner mit den aus NetBeans erzeugten .class-Dateien kopiert, und das Programm mittels java package.Main gestartet. Auch hier hat alles funktioniert.
Dann wollte ich das ganze mit der aus Netbeans erzeugten .jar-Datei testen. Habe das Programm mittels java -jar Name.jar gestartet. Wenn ich nun versuche eine Verbindung zur Datenbank herzustellen, tritt jedesmal eine ClassNotFoundException bei
Code:
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
auf.

Warum funktioniert die DB-Verbindung, wenn ich das Programm über die .class-Dateien aufrufe, und über die .jar-Datei NICHT?

Folgende Werte sind in der CLASSPATH-Umgebungsvariable gesetzt, um auf den Treiber/JDOM zugreifen zu können:

Code:
C:\Programme\Microsoft SQL Server 2000 Driver for JDBC\lib\msbase.jar;C:\Programme\Microsoft SQL Server 2000 Driver for JDBC\lib\msutil.jar;C:\Programme\Microsoft SQL Server 2000 Driver for JDBC\lib\mssqlserver.jar;C:\j2sdk1.4.2_04\jre\lib\ext\jdom.jar

Muss ich vielleicht in der Manifestdatei irgendwelche Einträge machen damit es funktioniert? Bzw. welche Einträge müsste ich machen?

Lg
 
vielleicht benutzt du Datein die in deiner Jar-Datei gespeichert sind um Dinge zu sichern oder ähnliches (z.b. ne config.cfg oder sowas).
Kopiere die Datein mal raus aus der Datei und in den gleichen Ordner wie deine Jar-Datei.
 
HorstHorstmann hat gesagt.:
vielleicht benutzt du Datein die in deiner Jar-Datei gespeichert sind um Dinge zu sichern oder ähnliches (z.b. ne config.cfg oder sowas).
Kopiere die Datein mal raus aus der Datei und in den gleichen Ordner wie deine Jar-Datei.

Ich versteh nicht ganz was du damit meinst. Aber mein Programm benötigt keine sonstigen Dateien (Konfig,...) damit es funktioniert. Nur jdom.jar und die Treiber-jar-Dateien werden benötigt - wobei ich diese mittels der Umgebungsvariable CLASSPATH angebe. Daher sollte es bei beiden Aufrufen funktionieren.

Meine jar-Datei beinhaltet einen Package-Ordner, darin befinden sich die .class-Files. Dann noch den Ordner META-INF mit der dazugehörenden Manifest.MF - Datei drin. Mehr ist in der .jar-Datei nicht drinnen.

In dem Ordner wo ich mittels java package.Main das Programm starte und wo die DB-Verbindung hergestellt werden kann, befindet sich sonst auch nichts, außer die dazugehörenden .class-Files.
 
Hallo!

Nachdem ich Eclipse mit dem FatJar - Plugin zur Erstellung der .jar-Datei verwendet habe, und da auch gleich meine benötigten .jar-Dateien miteingebunden habe, hat es funktioniert!

Danke
 
Zurück