mysql Treiber nich gefunden Java Editor

andy_a1962

Mitglied
Hallo zusammen,

ich habe mit dem freien Java Editor ein Programm mit Datenbakzugriff auf meine MySQL Datenbank geschrieben. Leider bekomme ich beim compilieren immer die Fehlermeldung "classNotFound...." in der Zeile ==> Class.forName("com.mysql.jdbc.Driver");
Ich habe den Treiber von MySQL heruntergeladen und die JAR Datei ins Verzeichnis C:\Programme\Java\Treiber kopiert.

Hat jemand eine Idee woran es liegen könnte?


Java:
import java.sql.*;
........

public void jButton1_ActionPerformed(ActionEvent evt) {
    try {
    Class.forName("com.mysql.jdbc.Driver");
    String username="root";
    String password="root";
    Connection con = DriverManager.getConnection
      ("jdbc:mysql://localhost/test", username, password);
    con.setReadOnly(true);
    Statement stmt = con.createStatement();

    ResultSet rs = stmt.executeQuery
      ("SELECT Vorname, Geburtsjahr FROM Mitarbeiter");
    //System.out.println("List of all employees:");
    while (rs.next()) {
      System.out.print(" name=" + rs.getString(1) );
      System.out.print(" Geburtsjahr=" + rs.getInt(2) );
      System.out.println();
    }

    rs.close();
    stmt.close();
    con.close();
   } catch(SQLException e) {
    System.out.println("DB-Verbindungsfehler");
   }

Hier noch das Listing der Umgebungsvariablen von Java Editor.

Installation
Version: 9.14m, 11.04.2010
Windows: Windows XP
regedit: HKEY_LOCAL_MACHINE\Software\JavaEditor
regedit: HKEY_CURRENT_USER\Software\JavaEditor

[Java]
PortableApplication=0
JDK-Folder=C:\Programme\Java\jdk1.6.0_17
JDK-FolderItems=
Interpreter=C:\Programme\Java\jdk1.6.0_17\bin\java.exe
Classpath=.;C:\Programme\JavaEditor;C:\Programme\Java\Treiber\mysql-connector-java-5.1.12-bin.jar
JavaCompiler=C:\Programme\Java\jdk1.6.0_17\bin\javac.exe
JikesCompiler=C:\Programme\Java\jdk1.6.0_17\bin\jikes.exe
Appletviewer=C:\Programme\Java\jdk1.6.0_17\bin\appletviewer.exe
Debugger=C:\Programme\Java\jdk1.6.0_17\bin\jdb.exe
JavaDoc=C:\Programme\Java\jdk1.6.0_17\bin\javadoc.exe
Disassembler=C:\Programme\Java\jdk1.6.0_17\bin\javap.exe
Jar=C:\Programme\Java\jdk1.6.0_17\bin\jar.exe
DOS-Window=0

[Program]
StartClass=
InterpreterParameter=
Classpath=C:\Programme\Java\Treiber\mysql-connector-java-5.1.12-bin.jar
JavaCompilerParameter=-O -deprecation -g
JikesCompilerParameter=-O -deprecation -g
JavaAsStandard=1
CompileAsMake=1
DocParameter=-author -version
DisassemblerParameter=-l -c -verbose
DisassemblerItems=jad.exe;
AppletStart=0
ShowHTMLforApplet=1
TempDir=C:\DOKUME~1\Wolfgang\LOKALE~1\Temp\
Manual=C:\Programme\Java\doku\j2se6.chm
ManualItems=C:\Programme\Java\doku\j2se6.chm;C:\Programme\Java\jdk1.6.0_17\docs;\docs;\chm;http://java.sun.com/javase/6/docs/i...tp://java.sun.com/j2se/1.4.2/docs/index.html;
JavaDocs=
Tutorial=C:\Programme\JavaEditor\hjp5\tutorial.chm
Javabook=C:\Programme\JavaEditor\hjp5\html\index.html
Cache=C:\Dokumente und Einstellungen\Wolfgang\Anwendungsdaten\JavaEditor\Cache
MaxSearch=20
 
ja ich hab eine Idee,

Das Problem ist, das du die aktuelle Java JRE finden musst.
Dann kopierst du die nur und ausschließlich nur dort hinein:

z.b. C:\Program Files\Java\jdk1.6.0_18\jre\lib\ext

wendest du das nur auf ein Package an hast du immer Probleme.

Alternativ kannst du auch die PATHVARIABLE über java -cp setzen um deinen eigenen Pfad festzulegen.

schau mal noch nach meinem Link, vielleicht findest da noch ein paar interesannte tipps:

http://www.java-forum.org/deploymen...-java-japplet-mysql-webserver.html#post629688

Ich hav jetzt 2 verdammte Tage an dem Bullshit rumgemacht, weil ich immer wieder zugriffsfehler bekommen hab.


"Good Luck"

Staff
 
Hallo staff,

ich habe den MYSQL-Treiber (*.JAR) schon in dieses Verzeichniss kopiert und es funkt immer noch nicht.🙁
Ich hab ihn 3x kopiert, 1x unter Java\jdk1.6.0_17\jre\lib\ext, 1x unter Java\jre6\lib\ext, und einmal unter c:\Java\Treiber.
Es kann doch kein Problem sein wenn der Treiber öfters im System ist, oder?

Ich vermute das Problem beim JavaEditor. Das dort irgend welche Einstellungen mich abschießen. Man kann dort auch Pfade angeben. Hab ich alles schon versucht, ohne Ergebnis.
Unter NetBeans 6.8 kann ich problemlos mit meiner MySQL-Datenbank komunizieren. Wenn ich damit die Datei vom JavaEditor öffne kommt aber auch dieser Fehler.
Bei NetBeans muß man solche externen Treiber in folgendes Verzeichnis kopieren.
C:\Programme\NetBeans\ide10\modules\ext.
Muß man vielleicht noch irgend was importieren außer Java.sql.*; ???

Es ist zum verzweifeln .... ;(
 
ja ich hab eine Idee,

Das Problem ist, das du die aktuelle Java JRE finden musst.
Dann kopierst du die nur und ausschließlich nur dort hinein:

z.b. C:\Program Files\Java\jdk1.6.0_18\jre\lib\ext

Nur mal so als Anmerkung, man sollte sowas möglichst NIE in die Systemdateien schieben.
Einmal ne JDK neu installiert und alles ist weg. Geschweige denn, dass es Zugriffsprobleme in Firmennetzwerken gibt.
Alles in allem ist diese Lösung vollkommen unsauber und ich rate davon dringendst ab.

Fremdbibliotheken die man für das Projekt braucht gehören immer in das Projektverzeichnis.
Von dort aus werden die ganz einfach in den CLASSPATH und BUILDPATH eingebunden und dann funktioniert das auch. Wenn man das ganze dann irgendwann mal verschiebt, dann hat man immer alles dabei und muss ggf nur noch die Pfade anpassen, wenn man das absolut verlinkt hat.
 
Den Treiber kopierst du mal ins Projektverzeichnis, am besten "neben" deine Programm-Jar-Datei.
Dann machst du deine Jar-Datei mit einem Packprogramm auf, gehst ins Verzeichnis META-INF, öffnest dort die Manifestdatei und setzt dort (sofern noch nicht vorhanden) den Treiber namen in folgende Zeile ein:
Code:
Class-Path: mysql-connector-java-5.1.12-bin.jar

Sollte die Treiber in einem anderen Verzeichnis gespeichert sein, kannst du das auch angeben:
Code:
Class-Path: ./lib/mysql-connector-java-5.1.12-bin.jar

Hier liegt der Treiber eine Verzeichnisebene tiefer, in einem Verzeichnis namens lib.
 
Vielen Dank für die Tips,

ich habe mitlerweile eine andere Lösung gefunden.
Anstelle der in allen Büchern verwendeten Methode Class.forName()... , habe ich irgendwo im Internet eine andere Methode gefunden, und siehe da mit dieser Variante klappt es. Worin hierbei der Unterschied ist weiß ich nicht. Vielleicht kann mir das mal einer erklären.

Java:
// Class.forName("com.mysql.jdbc.Driver").newInstance();
DriverManager.registerDriver(new com.mysql.jdbc.Driver() );

Vielleicht hat ja jemand Erfahrung mit dem Java-Editor 9.14m von Gerhard Röhner und kann mir sagen wo man dort Class-Pfade richtig setzt.
 

Zurück
Oben