MySQL JDBC Treiber einbinden



  • Folgendes Prog hab ich geschrieben:

    import java.sql.*;
    
    public class MySQL {
    
            public static void main( String[] args ) {
                    try {
                            Class.forName("com.mysql.jdbc.Driver").newInstance();
                            System.out.println("Okay, well done.");
                    } catch ( Exception e ) {
                            e.printStackTrace();
                    }
            }
    
    }
    

    Und folgendes kommt dabei raus.

    Tooms-Rechner:~/Desktop toom$ java MySQL -cp /Users/toom/Desktop/mysql-connector-java-5.0.5/mysql-connector-java-5.0.5-bin.jar 
    java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
            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:306)
            at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:268)
            at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
            at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
            at java.lang.Class.forName0(Native Method)
            at java.lang.Class.forName(Class.java:164)
            at MySQL.main(MySQL.java:7)
    

    Mit dem Befehl

    java MySQL -cp /Users/toom/Desktop/mysql-connector-java-5.0.5
    

    erhalte ich denselben Fehler.

    Wieso ist der Classpath falsch ???



  • das -cp ... muss natürlich VOR den klassennamen !!



  • java -cp /Users/toom/Desktop/mysql-connector-java-5.0.5/mysql-connector-java-5.0.5-bin.jar MySQL
    Exception in thread "main" java.lang.NoClassDefFoundError: MySQL
    

    Hatte ich auch schon so probiert. Funktioniert auch nicht. MySQL.java wurde ohne Fehler kompiliert und liegt im aktuellen Verzeichnis.



  • Ich glaube das liegt daran, dass du wenn du den Classpath angibst auch deinen "eigenen" angeben musst. D.h. wenn du sowas hast wie java -cp PfadZuExternenTollenSachen MyClass dann musst du das so machen: java -cp .;PfadZuExternenTollenSachen MyClass

    War zumindest bei mir immer so, wenn ich auch sowas wie du auf Kommandozeilenebene gemacht habe...



  • Aha, okay hat jetzt geklappt. Vielen Dank. Allerdings muß das Semikolon durch einen Doppelpunkt ersetzt werden. Dann klappt das auch mit den tollen Sachen 🙂



  • Hm, wirklich komisch. Bei mir klappt das nicht.

    org/aspectj/lang/signature Fehler, No Class Definition. Hat jemand eine Idee woher ich die klasse bekomme?



  • Um nicht den Inhalt der Umgebungsvariable CLASSPATH zu überschreiben, sondern den Pfad zu dem Paket (in unserem Fall der MySQL JDBC Treiber) anzuhängen, gehe ich wie folgt vor...

    martin@debian:~/Documents/java/db$ echo $CLASSPATH
    .:/usr/lib/j2se6.0-sun/jre/lib/plugin.jar
    martin@debian:~/Documents/java/db$ export CLASSPATH=${CLASSPATH}:`pwd`/mysql-connector-java-5.0.4-bin.jar
    martin@debian:~/Documents/java/db$ echo $CLASSPATH
    .:/usr/lib/j2se6.0-sun/jre/lib/plugin.jar:/home/martin/Documents/java/db/mysql-connector-java-5.0.4-bin.jar
    martin@debian:~/Documents/java/db$ javac main.java
    martin@debian:~/Documents/java/db$ java main
    idx=1   a=8388608       b= 16777216     c=33554432
    idx=2   a=16777216      b= 33554432     c=67108864
    idx=3   a=25165824      b= 50331648     c=100663296
    martin@debian:~/Documents/java/db$
    

    So bleibt "plugin.jar" und "." im CLASSPATH enthalten und muss nicht von Hand aufgeführt werden.

    Grüße
    Martin



  • Das klappt alles nicht. Kann mir jemand sagen, was "org.aspectj.lang.signature" für eine klasse ist, wofür wird diese gebraucht?



  • C:\project>set CLASSPATH=.:c:\j2sdk1.4.2_13\jre\lib\plugin.jar:c:\project\mysql-
    connector-java-3.1.14.jar
    
    C:\project>echo %CLASSPATH%
    .:c:\j2sdk1.4.2_13\jre\lib\plugin.jar:c:\project\mysql-connector-java-3.1.14.jar
    
    C:\project>java main
    Exception in thread "main" java.lang.NoClassDefFoundError: main
    
    C:\project>
    


  • C:\project>java -classpath c:\project;c:\j2sdk1.4.2_13\jre\lib;c:\j2sdk1.4.2_13\
    jre\lib\plugin.jar; main
    Starting Server v0.3Exception in thread "main" java.lang.NoClassDef
    FoundError: org/aspectj/lang/Signature
            at java.lang.Class.forName0(Native Method)
            at java.lang.Class.forName(Unknown Source)
            at Server.<init>(main.java:123)
            at main.main(main.java:261)
    
    C:\project>
    

    😕 😕



  • Mit Folgendem scheint es wohl zu funktionieren.

    > java classpath -classpath .;c:\j2sdk1.4.2_13\jre\lib;c:\j2sdk1.4.2_13\jre\lib\ main
    

Anmelden zum Antworten