Eclipse Apache Derby Treiber Problem

kamm12

Mitglied
Hallo Leute,

ich lerne gerade mit einem Buch aus der Bibliothek wie Java mit Datenbanken funktioniert, scheitere aber bereits bevor es losgeht an der Verbindung zur DB.
Immer wenn ich versuche den Code, den ich aus dem Buch habe ausführe bekomme ich eine ClassNotFound Exception und der Compiler sagt mir er könnte die Klasse nicht laden. Derby sollte ich über "C:\> set CLASSPATH=C:\Program Files\Java\jdk1.8.0_31\db\lib\derby.jar;C:\Program Files\Java\jdk1.8.0_31\db\lib\derbytools.jar;" , was ich in die Kommandozeile eingegeben habe bereits im Classpath drin haben, oder?
Habe mir wie hier im Forum in anderen Threads beschrieben die Dokumentation (https://db.apache.org/derby/papers/DerbyTut/embedded_intro.html) angesehen, weiß aber trotzdem nicht wo das Problem liegt.

Könnt ihr mir weiterhelfen?

Grüße und Dank im vorraus,
kamm12
Java:
public class Base_1 {

   private final static String ERSTELLE_TABELLE_ANWEISUNG = -SQL-Anweisung-;

   private static Connection erstelleVerbindung() throws ClassNotFoundException, SQLException, InstantiationException, IllegalAccessException {
     Class.forName("org.apache.derby.jdbc.EmbeddedDriver").newInstance();
     Connection verbindung = DriverManager.getConnection("jdbc:derby:c:/datenbank/db1; create=true");
     return verbindung;
   }


   public static void main(String[] args) throws InstantiationException, IllegalAccessException {
     try(Connection verbindung = erstelleVerbindung()) {
       Statement anweisung = verbindung.createStatement();
       anweisung.executeUpdate(ERSTELLE_TABELLE_ANWEISUNG);
       anweisung.close();
     } catch (ClassNotFoundException e) {
       System.err.println("Datenbank Treiber nicht gefunden");
       e.printStackTrace();
     } catch (SQLException e) {
       System.err.println("SQL Fehler");
     }
   }
}

Code:
Datenbank Treiber nicht gefunden
java.lang.ClassNotFoundException: org.apache.derby.jdbc.EmbeddedDriver
   at java.net.URLClassLoader.findClass(Unknown Source)
   at java.lang.ClassLoader.loadClass(Unknown Source)
   at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
   at java.lang.ClassLoader.loadClass(Unknown Source)
   at java.lang.Class.forName0(Native Method)
   at java.lang.Class.forName(Unknown Source)
   at Base_1.erstelleVerbindung(Base_1.java:22)
   at Base_1.main(Base_1.java:31)
 
Zuletzt bearbeitet von einem Moderator:
Danke für die Antwort, die Umsetzung macht mir jedoch immer noch Probleme.

Ich habe über den Java Code in Anweisung 1 meinen Classpath herausfinden können:
C:\Users\***\Eclipse\Galileo\pp2\bin
Habe die derby.jar aus db\lib aus dem jdk dorthin kopiert, bekomme aber weiterhin den gleichen Fehler.

Da ich Windows 8 habe, habe ich die Path Umgebungsvariable verändert (ist das richtig?) und
C:\Program Files\Java\jdk1.8.0_31\bin;C:\Program Files\Java\jdk1.8.0_31\db\lib;C:\Program Files\Java\jdk1.8.0_31\db\lib\derby.jar
angehängt. WIeder ohne Erfolg, die Exception erscheint noch immer.

Die Jar erst beim kompilieren einbinden ist doch doof wenn ich die Datenbank ja direkt in Eclipse nutzen möchte, oder?
 

Zurück
Oben