MySQL MATLAB: Class.forName wirft ClassNotFoundException

ingobulla

Mitglied
Hi,

ich möchte von MATLAB aus eine Java-Klasse aufrufen, mit der ich auf meine MySQL-Datenbank zugreifen kann. Dazu verwende ich folgende Klasse:

Java:
package MySQL;

...
 
public class MySQLConnection {

...

// Constructor
public MySQLConnection(String server, String database, String user, String passwd) {
	Map<String, String> map = System.getenv();
	out.println(map.get("CLASSPATH"));
	out.println(map.get("java.class.path"));
	try {		
		/* Loading the driver */
		Class.forName("org.gjt.mm.mysql.Driver").newInstance();
		...
	}
	catch (Exception e) {
		e.printStackTrace();
	}
}

...

}

Wenn ich den Konstruktor nun aufrufe, bekomme ich die Fehlermeldung

Java:
java.lang.ClassNotFoundException: org.gjt.mm.mysql.Driver

Dabei liefern mir die Zeilen

Java:
out.println(map.get("CLASSPATH"));
out.println(map.get("java.class.path"));

die Ausgabe
Java:
/home/ingo/Software/mysql-connector-java-3.1.14-bin.jar
null

Ich habe mit ls verifiziert, dass dieser Pfad korrekt ist.

Wenn ich statt org.gjt.mm.mysql.Driver den Pfad com.mysql.jdbc.Driver verwende, erhalte ich dasselbe.

Von daher: Kann mir jemand folgende Fragen beantworten?
  1. Wie ist es zu interpretieren, dass CLASSPATH den richtigen Pfad und java.class.path null enthält? Ich dachte, die seien immer gleich?
  2. Wie behebe ich das Problem?
 
Zuletzt bearbeitet von einem Moderator:
CLASSPATH ist eine Umgebungsvariable und sollte eigentlich nie(!) benutzt werden um den Classpath zu setzen.

Den Classpath setzt man entweder beim Aufruf ([c]java -cp ...[/c]), oder ein Jar setzt seinen eigenen.

Welche IDE verwendest du denn?

Kannst hier auch mal suchen, haben gefühlte 1000 Threads mit dem Thema (mysql jar nicht im classpath etc) pro Woche 😉
 

Zurück
Oben