# Jdbc: Unable to load Driver!



## DonErnus (2. Mrz 2009)

Hi@all

ich habe ein kleines Problem mit meinem Jdbc, und zwar ging alles wunderbar nur jetzt macht er mir faxen die ich nicht verstehe.

und zwar habe ich meine Connection Klasse (hier)
[HIGHLIGHT="Java"]import java.sql.*;

public class db_connect_inc {

	public String driver = "com.mysql.jdbc.Driver";
	public Connection connect = null;
	public String dUser = "root";
	public String dPwd = "";
	public String port = "3306";
	public String db = "127.0.0.1";
	public String tab = "ad";
	public String dbname = "test";

	public void db_connect() {
		try {
			Class.forName(driver);
		} catch (ClassNotFoundException e) {
			System.err.println("Unable to load Driver!");
			System.err.println(e.getMessage());
			e.printStackTrace();
			System.exit(1);
		}

		try {
			connect = DriverManager.getConnection("jdbc:mysql://" + db + ":"
					+ port + "/" + dbname, dUser, dPwd);
		} catch (SQLException e) {
			System.err
					.println("Die Verbindung zur Datenbank ist nicht Möglich");
			System.err.println("Fehlercode: " + e.getErrorCode());
		}

	}
}[/HIGHLIGHT]

Nur jetzt wen ich das ganze mal abschieße in einem Programm passiert folgendes.


```
Unable to load Driver!
java.lang.ClassNotFoundException: org.hsqldb.jdbcDriver
	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:307)
	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
Exception: org.hsqldb.jdbcDriver
	at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
	at java.lang.Class.forName0(Native Method)
	at java.lang.Class.forName(Class.java:169)
	at DB_Schule.db_connect_inc.db_connect(db_connect_inc.java:20)
	at DB_Schule.db_start_testlauf.main(db_start_testlauf.java:15)
```

hab ich mir nichts weiter bei gedacht und mal alles überprüft, nur ich finde den fehler nicht was mir bei dem ganzen aufgefallen ist, das er irgendwie den Flaschen Treiber läd,

[HIGHLIGHT="Java"]java.lang.ClassNotFoundException: org.hsqldb.jdbcDriver[/HIGHLIGHT]

Statt

[HIGHLIGHT="Java"]public String driver = "com.mysql.jdbc.Driver";[/HIGHLIGHT]

kan mir vllt jemand von euch aus der Misäre Helfen  ?
Gruß DonErnus


----------



## tfa (2. Mrz 2009)

Kann es sein, dass du das Programm nicht kompilert hast? Mach mal Clean mit anschließendem Rebuild


----------



## DonErnus (2. Mrz 2009)

ok, jetzt isses noch seltsamer.

Hab den Clean gemacht jertzt baut das ganze garnichtmehr mit der Exeption:
[HIGHLIGHT="Java"]java.lang.NoClassDefFoundError: DB_Schule/db_start_testlauf
Caused by: java.lang.ClassNotFoundException: DB.db_testlauf
	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:307)
	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
	at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
Exception in thread "main" [/HIGHLIGHT]


----------



## tfa (2. Mrz 2009)

Jetzt stimmt was am Klassenpfad nicht oder die .class Datei ist nicht da. Hast du ein Build gemacht?


----------



## DonErnus (2. Mrz 2009)

hab jetzt ne rebuild gemacht, und jetzt stehe ich wieder am anfang.


----------



## DonErnus (2. Mrz 2009)

evt. liegt es ja an meinem eclipse ich spiel mir mal ein Backup ein. Mal schaun ob das was bringt.


----------



## Ebenius (2. Mrz 2009)

Wie startest Du Dein Programm? Auf der Kommando-Zeile? Wenn ja: Wie sieht der Startaufruf / das Start-Skript aus? Oder aus einer Entwicklungsumgebung (Eclipse / Netbeans / ...=? Wenn dem so ist: Überprüf die Einstellungen in "Run Configuration" (so heißt's in Eclipse; wie's in anderen heißt weiß ich nicht). Die JAR-Datei wo der MySQL-Treiber drin ist, muss im CLASSPATH sein. Wenn Du aus der Konsole startest, musst Du sie entweder in der CLASSPATH-Umgebungsvariable finden, oder in dem Java-Start-Argument "-cp" bzw. "-classpath", oder im MANIFEST des JAR-Files welches Dein Programm beinhaltet referenziert sein. Wenn Du aus der Entwicklungsumgebung startest, muss die JAR-Datei ebenfalls irgendwo eingetragen sein.

Ebenius


----------



## DonErnus (2. Mrz 2009)

so hab jetzt alles mal wieder zurück gespielt und auch auf meinem Notbook mal geschaut dort funktioniert das alles.

was mir jetzt auffält wen ich in meiner ide ( eclipse) JRE System Libary aufmache und mal reingucke ist dort mein treiber nicht drin. Beim Notebook schon dort geht das alles auch, nur jetzt die frage wie bekomme ich den dort wieder rein 

Gruß


----------



## Ebenius (2. Mrz 2009)

In der JRE System Library? Da hat der Treiber nichts zu suchen. Das solltest Du auf dem Notebook gleich auch noch ausbessern.

Du trägst am besten den Treiber ein, unter Preferences » Java » Build Path » User Libraries. Dort legst Du Dir eine User Library namens MySQL an. Und im Projekt trägst Du diese im Build-Path ein. Fertig.

Anbei: Wäre nett gewesen, mitzuteilen, dass es auf einem Rechner ging, auf nem anderen aber nicht. 

Ebenius


----------



## DonErnus (2. Mrz 2009)

```
Und im Projekt trägst Du diese im Build-Path ein
```

das habe ich noch nicht ganz verstanden muss dazusagen  bin azubi und hab vorher noch nichts mit dem Jdbc gemacht .

Sonst habe ich mit java keine großen schwirigkeiten aber da steig ich noch nicht ganz durch.


----------



## Ebenius (2. Mrz 2009)

DonErnus hat gesagt.:


> ```
> Und im Projekt trägst Du diese im Build-Path ein
> ```
> 
> ...


Auf's Projekt mit der rechten Maustaste klicken, "Properties" auswählen, dann links "Java Build Path" auswählen, dann rechts "Libraries" auswählen und mir "Add Library" die User Library hinzufügen... Jetzt klarer?


----------



## DonErnus (3. Mrz 2009)

jop alles klar funktioniert thx =)


----------

