# java.lang.ClassNotFoundException: com.mysql.jdbc.Driver



## Spinner0185 (3. Nov 2009)

Hi,

ich habe das problem das der DB verbidnungstreiber nicht gefunden wird.
ich binde ihn so ein: 

```
Class.forName("com.mysql.jdbc.Driver").newInstance();
```

nur leider kommt an der stelle immer die exception.
Den mysql-connector hab ich auch eingebunden und wenn ich über import nach com.mysql.jdbc.Driver gehe dann ist der auch da. 

Ich wär für jeden tipp dankbar

Spinner0815


----------



## L-ectron-X (3. Nov 2009)

Schau mal hier, ob dir das hilft: Datenbankverbindung (Java) - Byte-Welt Wiki


----------



## Spinner0185 (3. Nov 2009)

ne leider nicht. er hat ja shcon probleme beim laden der Treiberklasse obwohl die klasse da ist. muss ich den connector noch irgendwo unter eclipse oder so speichern?

ich hab den jetzt samt der anderen dateien auf c:\programme\java\mysql gespeichert und auch in eclipse eingebunden bzw. in das projekt


----------



## maki (3. Nov 2009)

Der JDBC Treiber liegt offensichtlich nicht im Classpath der Anwendung.

Jetzt könntest du uns genauer beschreiben wan der Fehler auftritt


----------



## Spinner0185 (3. Nov 2009)

verbindung.java:

```
/*
 * Verbindung.java
 *
 * Created on 16. November 2006, 15:10
 *
 * To change this template, choose Tools | Template Manager
 * and open the template in the editor.
 */

package fh.zonk.pravasate.server;

import java.sql.*;


public class Verbindung {
    
    /** Creates a new instance of Verbindung */
    public Verbindung() {
    }
    
     public static Connection driver()
    {
        java.sql.Connection conn = null;
        try{
       		System.out.println("vor dem laden der Treiberklasse");
                Class.forName("com.mysql.jdbc.Driver").newInstance(); 
                System.out.println("nach dem laden der Treiberklasse");
               
                //String url = "jdbc:mysql://localhost/anr_db?user=root&password=Pass1word";
                String url = "jdbc:mysql://meineDB:3306/DB";
               
                 conn = DriverManager.getConnection(url,"user","pw");
                // conn = DriverManager.getConnection(url);                
                
        }
        catch (ClassNotFoundException cex)
        {
            cex.printStackTrace();
        }
          catch (SQLException sqlex)
        {
            sqlex.printStackTrace();
        }
           catch (Exception ex)
        {
            ex.printStackTrace();
        }
        
        return conn;
    }
}
```
Fehler:

```
The server is running at http://localhost:8080/
vor dem laden der Treiberklasse
java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
	at java.net.URLClassLoader$1.run(Unknown Source)
......
```
soweit kommt er dann beim laden der treiberklasse

der connector ist auch in dem projekt mit drin:


----------



## Spinner0185 (3. Nov 2009)

ins classpath hab ich den connector auch schon eingebunden. habs auch schon mit dem ganzen entpackte ordner probiert und mit der zip datei. 
hat alles nix geholfen.
ich hab echt keine ahnung woran das liegen könnte

€dit: kann es vielleicht daran liegen das es eine GWT web Anwendung ist. und die Verbindung.java datei mit im Serverpart liegt? sollte ich die Verbindung vielleicht importieren oder irgendwie sowaS?


----------



## Spinner0185 (3. Nov 2009)

ok ich hab hier was gefunden das funktioniert hat: http://www.java-forum.org/web-tier/90236-probleme-gwt-mysql.html

Ich hab die google appengine deaktiviert. aber was hat das jetzt zur folge? 
es scheint ja alles weiterhin zu klappen, wo ist jetzt der hacken an der deaktivierung?


----------



## maki (3. Nov 2009)

k.A. was GWT betrifft, aber anscheinend war der CP für tomcat eben ohne den JDBC Treiber


----------



## JohannisderKaeufer (4. Nov 2009)

Das zip mußt du glaube ich schon entpacken.

Und dann findest du darin eine mysql-connector-java-5.1.10-bin.jar

und genau dieses jar solltest du referenzieren.

Ausserdem kann es hilfreich sein probehalber, 
new com.mysql.jdbc.Driver();
neben dem 
Class.forName("com.mysql.jdbc.Driver").newInstance();
zu verwenden.

Ersteres wirft eine Compiletime-Exeption, also Eclipse etc. zeigen an das das Ding nicht im Classpath ist.

Letzteres führt zu einer Runtime-Exception und wird daher erst später in erscheinung treten.

Nichts desto trotz sollte man letzteres verwenden, und das erste nur zur kurzzeitigen Fehlersuche nutzen.


----------



## yeti (5. Nov 2009)

Spinner0185 hat gesagt.:


> Hi,
> 
> ich habe das problem das der DB verbidnungstreiber nicht gefunden wird.
> ich binde ihn so ein:
> ...



Hi,

ich hatte das Probelm vor kurzem auch.

Wichtig ist es zunächst das Archiv auszupacken und die .jar Datei in ein Verzeichnis deiner Wahl zu kopieren. Dann muss ein CLASSPATH (sofern noch nicht vorhanden) angelegt werden. Windows 2000 und Windows XP hat das in den Eigenschaften vom Arbeitsplatz unter "Erweitert" stehen.

Bei den Systemvariablen eine neue Variable mit dem Namen CLASSPATH erzeugen. Dieser sollte mindestens folgendes beinhalten:

.;c:\pfad\zum\Connector\mysql-connector-java-5.1.10-bin.jar;
(Versionsnummer evtl. abändern)

Es kann ebenso nicht schaden, in den Benutzervariablen JAVA_HOME einzutragen. War bei mir nicht für diesen Aufruf notwendig, braucht es aber evtl. für andere Dinge.

Damit war mein Problem gelöst.

Wenn du mit Programmen wie beispielsweise eclipse arbeitest, musst du je nach Art der Anwendung den Connector dort auch noch mit eintragen.

Viele Grüße
Yeti


----------



## chico_rico (3. Jul 2011)

Hatte dasselbe Problem und meine Lösung war einfach die "mysql-connector-java-5.1.16-bin.jar" zusätzlich noch in "TOMCAT-HOME\lib" reinzukopieren


----------

