# Eclipse Apache Derby Treiber Problem



## kamm12 (10. Aug 2015)

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

```
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");
     }
   }
}
```


```
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)
```


----------



## stg (11. Aug 2015)

Schau mal hier
https://www.chilkatsoft.com/java-classpath-Windows.asp


----------



## kamm12 (11. Aug 2015)

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?


----------



## stg (11. Aug 2015)

Wenn du eine IDE wie Eclipse benutzt, ist das alles eigentlich noch mal viel einfacher und du musst den classpath gar nicht von Hand setzen. Siehe hier:
http://stackoverflow.com/questions/3280353/how-to-import-a-jar-in-eclipse


----------



## kamm12 (11. Aug 2015)

Das hat funktioniert.
Vielen Dank!


----------

