Datenbankzugriff ohne Eclipse

Status
Nicht offen für weitere Antworten.

aemik

Bekanntes Mitglied
Hallo,

ich habe ein Programm geschrieben, dass auf eine Datenbank zugreift. Den Treiber dafür hab ich in Eclipse importiert.
Wie schaff ich es nun dass mein Programm ohne Eclipse, eigenständig läuft, also als *.jar und wie binde ich dann den jdbc Datenbanktreiber ein?

Danke
aemik
 
Mit Export in Eclipse kann ich die Jar erstellen.
Wie kann ich festlegen wo mein JDBC Treiber liegt???

Ich bekomm beim starten des JARs immer die Fehlermeldung:
"Failed to load Main-Class mainfest attribute from "C:\..\test.jar"
 
Deine Fehlermeldung liegt daran, dass du beim Erstellen des Jars keine Main-Klasse angibst...

Klick im Export Dialog auf "weiter", dann taucht dort ein entsprechendes Eingabefeld auf.
 
Ok, alles klar.

Jetzt bekomm ich schon keine Fehlermeldung mehr, aber mein Jar File tut beim Starten eifnach nichts....
Woran kann das liegen?
 
Aus irgendeinem Grund startet es jetzt.
Aber:
Die Datenbank wird nicht geladen...
Woran kann das liegen?
 
Ich bekomm eine ClassnotFound Exception, weil der Treiber nicht gefunden wird.
Aus einer Configdatei wird der Treiber geladen (oracle.jdbc.driver.OracleDriver) mit Class.forName(treiber). In Eclipse klappt das auch weil ich dort den Treiber importiert habe.
Aber wie läuft das im JarFile ausserhalb? Wo sucht er nach dem Treiber?
Wahrscheinlich im JarFile, aber ich will dass der Treiber irgendwo extern liegt...
 
Dann brauchst du eine Batch-Datei, inder du dein classpath erweiterst.
 
Geth das nicht einfacher???
Es muss doch irgendwie möglich sein einen Treiber, der irgendwo liegt, in Java einzubinden.
wo find ich die classpath Datei?
 
Gut, okay...
muss ich mir mal anschauen...

das muss doch mit Eclipse eifnach gehen, aber ich find nix.
Zudem ist es wichtig, dass der Treiber nicht in mein Jar-File integriert wird, sondern extern liegen muss...
 
das mit der Batch-Datei ist nicht schwierig. Da gehört nur ein etwas längerer java-Aufruf hin:
java -classpath [Pfad zum jdbc-lib].jar;[andere libs].jar;[deineJarDatei] de.aemik.anwendung.NameDerMainKlasse
 
ok, dann werde ich das mal versuchen.
Wie erstell ich so ein batch?
einfach den befehl in den Editor und dann also *.bat speichern?
 
erstelle eine Textdatei und nenne sie aemiksDBProgrammStarten.bat, dann kannste diese batch-Datei im Text-editor editieren und in der eingabeaufforderung (oder cmd) aufrufen.

Vielleicht noch ein kleiner Hinweis: ich arbeite privat viel mit Netbeans. Netbeans macht es alles automatisch in der manifest-Datei und lagert alle externen Bibliotheken im lib-Verzeichnis. Mit netbeans wäre dieses Problem hier im Forum gar nicht aufgetaucht 🙂
 
hab jetzt den Befehl hier:
java -classpath ojdbc14.jar;test.jar Start

geht nicht, aber mir ist auch net so ganz klar wie die Main Klasse angegeben werden muss
 
die Main Klasse muss vollqualifiziert angegeben sein. Also zusammen mit package falls die Klasse eine package-Deklaration hat. Noch was zur Sicherstellung:

Wenn du den Aufruf "java -classpath ojdbc14.jar;test.jar Start " benutzt dann ist folgendes vorausgesetzt:
- du bist mit deiner Eingabeaufforderung im gleichen verzeichnis bist wie die dateien ojdbc14.jar und test.jar, andernfalls kannst du sogar komplette Pfade reinschreiben, z.B.:

java -classpath "C:\Dokumente und Einstellungen\...\ojdbc14.jar;C:\Dokumente und Einstellungen\...\test.jar" [packagename].Klasse
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Zurück
Oben