Datenbank: Treiber nicht gefunden

Status
Nicht offen für weitere Antworten.

TheChemist

Bekanntes Mitglied
Hallo,
ich möchte zu meiner Datenbank connecten, leider schlägt das ganze schon beim Start fehl. Am Code kann es eigentlich nicht liegen, hab das so quasi aus dem Tutorial übernommen. Wo der Fehler allerdings sonst liegen könnte weiß ich nicht, dementsprechend hab ich mir auch keine Lösung googeln können.
Also, wo liegt der Fehler? Wie kann ich ihn beheben?
Danke

Java:
public static final String DBDRIVER = "org.h2.Driver";
    public static final String DBNAME = "Test";
    public static final String DBPATH = "~";
    
    private Connection conn;
    
    public DatabaseConnector()
    {        
        // Treiber laden
        try {
            Class.forName(DBDRIVER);
        } catch(ClassNotFoundException cnfe) {
            fail(cnfe, "Fehler beim Laden des Treibers!");
        }
        
        // Verbindung aufbauen
        try {
            conn = DriverManager.getConnection("jdbc:h2:" + DBPATH + "/" + DBNAME, "sa", "");
        } catch(SQLException sqle) {
            fail(sqle, "Fehler bei Verbinden!");
        }
    }

    ....

}

Die Fehlermeldung:
Java:
java.lang.ClassNotFoundException: org.h2.Driver
        at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:276)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
        at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Class.java:169)
        at everwinter.DatabaseConnector.<init>(DatabaseConnector.java:31)
        at everwinter.GameOperator.<init>(GameOperator.java:55)
        at everwinter.GameOperator$1.run(GameOperator.java:37)
        at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:597)
        at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273)
        at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:173)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160)
        at java.awt.EventDispatchThread.run(EventDispatchThread.java:121)
 

TheChemist

Bekanntes Mitglied
Da kommen wir schon an den Punkt wo mein Wissen aufhört.
Ich hab mit Datenbanken bisher eigentlich kaum was gemacht und das Tutorial das ich jetzt zur Hand hatte hat nur das abgedeckt was du im Code sehen kannst...
Also kann ich auf deine Frage nur antworten mit: Ich weiß es nicht.
 

moormaster

Top Contributor
Dem Compiler muss bekannt gemacht werden, wo genau er die .jar-Datei mit dem DB-Treiber findet.

Der Compiler hat in diesem Fall nix damit zu tun, da im Quelltext nur mit den Standardschnittstellen (Connection, DriverManager, ...) gearbeitet wird, welche sich bereits in der API befinden. Die Klasse des Datenbanktreibers muss hier nur zur Laufzeit existieren.
 

frapo

Bekanntes Mitglied
Der Compiler hat in diesem Fall nix damit zu tun, da im Quelltext nur mit den Standardschnittstellen (Connection, DriverManager, ...) gearbeitet wird, welche sich bereits in der API befinden. Die Klasse des Datenbanktreibers muss hier nur zur Laufzeit existieren.

Sorry, ich meinte es natürlich so wie du es beschrieben hast:
Code:
java
und nicht
Code:
javac
muss wissen wo sich die .jar-Datei befindet.

Also nicht der Compiler will es wissen, sondern der Interpreter.
 

TheChemist

Bekanntes Mitglied
Puh, also ich hab jetzt mal versuch umzusetzen was ihr mir gesagt habt, bisher hat es aber noch nicht funktioniert.
Aus dem Wikipedia-Artikel konnte ich nur herauslesen, dass ich die CLASSPATH Variable richtig setzen muss, das hab ich mit:

Code:
set CLASSPATH=C:\Pfad\H2\bin\h2-1.1.115.jar

ja gemacht, oder lieg ich da falsch? Und was muss ich noch machen?
 

TheChemist

Bekanntes Mitglied
Puhh, irgendwie steh ich bei der Sache aufm Schlauch aber es kann ja nur besser werden...
Also ich hab es jetzt ma mit
Code:
java -classpath C:\PROGRA~1\H2\bin\h2-1.1.115.jar org.h2.Driver
versucht, bekomme dann aber diese Exception
Code:
Exception in thread "main" java.lang.NoSuchMethodError: main
Was das bedeutet ist mir klar, das bringt mich allerdings nicht weiter. Das Insel-Kapitel hab ich gelesen, das hat mich allerdings nicht groß weitergebracht :/
 

TheChemist

Bekanntes Mitglied
Ich glaub der Thread hat sich ein bisschen von dem entfernt was ich eigentlich wollte, nicht zuletzt wohl wegen meiner unpräzisen Fragestellung. Inzwischen habe ich es geschafft das Programm aus dem Kommandofenster erfolgreich zu starten. Es hat eine Weile gedauert bis ich verstanden habe wie, aber ok, es ist geschafft.

Jetzt aber meine nächste Frage. Normalerweise starte ich das Programm entweder direkt aus der IDE (in meinem Fall Netbeans) oder über die .jar-Datei. Wie schaffe ich es jetzt die Variablen jedes mal korrekt zu setzen? Oder gibt es eine Möglichkeit die Variablen permanent zu setzen?
 

TheChemist

Bekanntes Mitglied
Also da ich immer noch mit dem Problem kämpfe muss ich nochmal nachfragen. Ich hab ein bisschen gesucht und herausgefunden, dass das manifest-File wohl das ist was ich brauche um einen erfolgreichen Start hinzulegen. Mit Hilfe von Wikipedia kam dann folgendes raus:

manifest.mf:
Code:
Manifest-Version: 1.0
Main-Class: package.Main
Class-Path: lib\support.jar
Bei folgender Ordnerstruktur:
Code:
C:\...\myprogram\
              |
               ---> myProgram.jar
              |
               ---> lib\
                       |
                        ---> support.jar
So müsste das eigentlich funktionieren oder? Tut es nur leider nicht und ich habe immoment noch keine Idee wo der Fehler liegen könnte...
 

heart_disease

Bekanntes Mitglied
Wo's doch so leicht ist ... ;)

Code:
java -cp bin;bin\h2-1.1.115.jar package.Main
Und diesen Befehl führst du im Verzeichnis C:\PROGRA~1\H2 aus - voraussgesetzt deine Einstiegsklasse mit der main-Methode heißt wirklich Main und liegt im Package package!
 
Zuletzt bearbeitet:

TheChemist

Bekanntes Mitglied
Wo's doch so leicht ist ... ;)

Code:
java -cp bin;bin\h2-1.1.115.jar package.Main
Und diesen Befehl führst du im Verzeichnis C:\PROGRA~1\H2 aus - voraussgesetzt deine Einstiegsklasse mit der main-Methode heißt wirklich Main und liegt im Package package!

So weit war ich auch schon, ich verweise nochmal auf meinen Post von vorgestern. Ein Start aus dem Kommandofenster klappt wie es soll, starte ich aber über die .jar oder direkt aus der IDE heraus habe ich wieder das selbe Problem. Das mächste ich jetzt lösen.
 

heart_disease

Bekanntes Mitglied
Puh, mit Netbeans kenne ich mich nicht aus. Aber bei Eclipse kann ich bei den Projekteinstellungen immer die JARs hinzufügen.

Und warum heißt die Datei bei dir jetzt aufeinmal support.jar?
 

TheChemist

Bekanntes Mitglied
Hab den Fehler gefunden, funktioniert jetzt alles mit der Manifest-Datei wie gewünscht. Trotzdem danke an alle :)
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
I Erste Schritte Einfache Datenbank-Webseite erstellen als Nicht-IT-lerin Java Basics - Anfänger-Themen 24
M Daten aus errechneter Methode in Datenbank(SQLite) schreiben Java Basics - Anfänger-Themen 60
S Best Practice Fragen zu Projektstruktur einer Datenbank-Abfrage-App (MVC) Java Basics - Anfänger-Themen 13
I Element n aus Datenbank Query (JPA / Hibernate) Java Basics - Anfänger-Themen 3
I Passwort in Datenbank speichern um später wieder auszulesen Java Basics - Anfänger-Themen 5
S OOP Java Eingabe in verschiedene Datenbank Tabellen eintragen Java Basics - Anfänger-Themen 7
I H2 Datenbank starten / Daten in File speichern Java Basics - Anfänger-Themen 25
E schneller von der Datenbank abfragen Java Basics - Anfänger-Themen 15
E Datenbank Spalte zusammenzählen Java Basics - Anfänger-Themen 2
R Datenbank Java Basics - Anfänger-Themen 1
I API Key´s in der Datenbank decrypt / encrypten? Java Basics - Anfänger-Themen 23
I Werte (u.a. Geldbeträge) in Datenbank speichern und Rundungen? Java Basics - Anfänger-Themen 8
M Mehrere Datenbank zugriffe über tomee.xml regeln? Java Basics - Anfänger-Themen 1
M Datenbank oder Textdatei? Java Basics - Anfänger-Themen 4
S Datenbank Befehl nach Login Java Basics - Anfänger-Themen 5
S Datenbank Tabelle eine Zeile an einer bestimmten Stelle einfügen Java Basics - Anfänger-Themen 2
M Von der Datenbank zum Textfield Java Basics - Anfänger-Themen 16
R Best Practice Logik in der Datenbank oder in Java? Java Basics - Anfänger-Themen 3
R Datenbank-Werte dynamisch ausgeben Java Basics - Anfänger-Themen 19
B Frage zu Datenbank Design - Rechnungen, Angebote... und deren Positionen Java Basics - Anfänger-Themen 4
B Datenbank: Entity mit vielen Referenzen? Ansatz so ok? Java Basics - Anfänger-Themen 8
T Datenbank | Welche am Sinnvollsten? Java Basics - Anfänger-Themen 5
S Daten speichern, ohne Datenbank Java Basics - Anfänger-Themen 8
L Daten aus ArrayList in Datenbank durchsuchen Java Basics - Anfänger-Themen 5
M Datenbank in jTable Laden Java Basics - Anfänger-Themen 49
M Datenbank verbindung Java Basics - Anfänger-Themen 19
J Java Verbindung mit mysql Datenbank Java Basics - Anfänger-Themen 3
B Datenbank, aktuelle Ende als Zahl an Label übergeben Java Basics - Anfänger-Themen 7
T Collections Geeignete Collection/Liste/Datenbank Java Basics - Anfänger-Themen 17
B Treetable (rekursive Funktion) aufbauen von Datenbank Java Basics - Anfänger-Themen 4
R Input/Output Verbindung mit mySql-Datenbank Java Basics - Anfänger-Themen 9
D Compiler-Fehler Wert auf Datenbank übertragen und Sleep Thread Java Basics - Anfänger-Themen 3
N (Java) Regristrierung und Login System mit einer Datenbank Java Basics - Anfänger-Themen 5
J Datenbank Zugriff Java Basics - Anfänger-Themen 24
J Mit JSF Formular in Datenbank schreiben Java Basics - Anfänger-Themen 3
DaCrazyJavaExpert Verschiede Aktionen der Datenbank getrennt durchführen Java Basics - Anfänger-Themen 4
DaCrazyJavaExpert Datenbank wird nicht erstellt Java Basics - Anfänger-Themen 31
E Daten gehen nicht in Datenbank Java Basics - Anfänger-Themen 14
C JTable update mit MySQL Datenbank Java Basics - Anfänger-Themen 1
Meeresgott OOP Gui, Logik und Datenbank richtig aufbauen Java Basics - Anfänger-Themen 43
B Schreiben von zu vielen Einträgen in einer Datenbank Java Basics - Anfänger-Themen 9
S Datenbank auf Knopfdruck abfragen Java Basics - Anfänger-Themen 8
M Java als Webanwendung mit Datenbank abfrage Java Basics - Anfänger-Themen 3
N Datenbank mit GUI verbinden - Wie? Java Basics - Anfänger-Themen 5
1 Datenbank in Java Java Basics - Anfänger-Themen 1
M Erste Schritte Java Applet - HTML Seiten auslesen und in Access Datenbank schreiben? Java Basics - Anfänger-Themen 15
J Bücher Datenbank Java Basics - Anfänger-Themen 5
S Best Practice MVC und große Datenmengen aus einer mySQL - Datenbank Java Basics - Anfänger-Themen 24
J Datum und Uhrzeit in Datenbank falsch hinterlegt Java Basics - Anfänger-Themen 13
R Erstversuch Datenbank Java Basics - Anfänger-Themen 6
I Daten speichern ohne Datenbank Java Basics - Anfänger-Themen 20
A Erste Schritte Verbindung zu MySQL Datenbank herstellen Java Basics - Anfänger-Themen 7
T Sql Datenbank - variable übergeben? Java Basics - Anfänger-Themen 8
C Passwörter möglichst sicher in Datenbank speichern Java Basics - Anfänger-Themen 18
W Erste Schritte Exceltabelle in Datenbank übertragen mittels XDEV Java Basics - Anfänger-Themen 7
J GUI mit phpMyAdmin Datenbank verbinden Java Basics - Anfänger-Themen 0
K Erste Schritte Datenbank SQL erklärung Java Basics - Anfänger-Themen 15
B Lokale Datenbank Java Java Basics - Anfänger-Themen 2
B Klassen Doppelte werte Filtern XML, Datenbank und DOM Java Basics - Anfänger-Themen 3
Todesbote Int Array mit Hibernate in Datenbank speichern. Java Basics - Anfänger-Themen 2
U Datenbank in Java Java Basics - Anfänger-Themen 8
M Keine Datenbank verbindung Java Basics - Anfänger-Themen 14
N mit Werten aus einer mysql datenbank in java rechnen Java Basics - Anfänger-Themen 17
Q Datenbank nicht über separaten Server Java Basics - Anfänger-Themen 4
B Dateiname in Datenbank schreiben Java Basics - Anfänger-Themen 2
J fortlaufende Objekte durch Variable auswählen; Datenbank Java Basics - Anfänger-Themen 4
S ArrayList in mysql Datenbank speichern Java Basics - Anfänger-Themen 6
C Datenbank - Welche Java Basics - Anfänger-Themen 5
B Java Objektorientierte Datenbank - Assoziation Hilfe Java Basics - Anfänger-Themen 4
G Input/Output Serialisierung oder Datenbank Java Basics - Anfänger-Themen 6
J Erste Schritte Objekte in Datenbank speichern Java Basics - Anfänger-Themen 26
A Android Datenbank gaaanz einfaches Insert geht nicht - warum? Java Basics - Anfänger-Themen 4
L Erste Schritte Datenbank Zugangsdaten sicher? Java Basics - Anfänger-Themen 15
S Input/Output Primzahlen Datenbank Java Basics - Anfänger-Themen 11
B Mit Java-Programm Daten aus MySQL-Datenbank auslesen, lokal und nicht lokal. Java Basics - Anfänger-Themen 10
K Input/Output Datenbank Java Basics - Anfänger-Themen 27
M Datenbank in die Gui Java Basics - Anfänger-Themen 4
J JTable mit Daten aus Datenbank füllen Java Basics - Anfänger-Themen 3
F Erfassung von PCs in eine SQLite-Datenbank über JDBC Java Basics - Anfänger-Themen 9
T Datenbank Abfrage Exception Null Java Basics - Anfänger-Themen 2
M Brauche ich ein Datenbank oder nicht? Java Basics - Anfänger-Themen 6
D JDBC Datenbank fail?! Java Basics - Anfänger-Themen 20
A Problem beim einfügen in eine Datenbank Java Basics - Anfänger-Themen 2
F Classpath Datenbank ... nur wo? Java Basics - Anfänger-Themen 24
H Datenbank suche in kleine Schritte Java Basics - Anfänger-Themen 6
B Personalnummer aus Datenbank Java Basics - Anfänger-Themen 3
M Welche Datenbank? Java Basics - Anfänger-Themen 5
J RadioButtonInhalt in Datenbank übergeben Java Basics - Anfänger-Themen 3
R Datenbank bei Klassenverteilung führt zu NullPointerException Java Basics - Anfänger-Themen 7
J PW von Datenbank wie abspeichern? Java Basics - Anfänger-Themen 2
F Verbindung zu MySql Datenbank Java Basics - Anfänger-Themen 4
MU5T4NG JPasswordField als Hash in Datenbank abspeichern Java Basics - Anfänger-Themen 3
J Kleine Datenbank programmieren Java Basics - Anfänger-Themen 2
J Eigene kleine Datenbank programmieren Java Basics - Anfänger-Themen 2
F Collections Datenbankdaten in einer Map speichern, bearbeiten, sortieren und wieder in Datenbank schreiben Java Basics - Anfänger-Themen 20
T Zugangsdaten für Datenbank in Java-Programm speichern? Java Basics - Anfänger-Themen 5
S Schnittstelle für Datenbank bzw. Dateiformat Java Basics - Anfänger-Themen 2
C ComboBoxModel mit Daten der Datenbank verändern Java Basics - Anfänger-Themen 2
T Datenbank automatisch erzeugen beim ersten Start Java Basics - Anfänger-Themen 6
I Datenbank - nach erster Verbindung keine Verbindung mehr Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben