Class.forName("com.mysql.jdbc.Driver"); ClassNotFoundException: com.mysql.jdbc.Driver

PeterFoe

Aktives Mitglied
Hallo, ich habe Ubuntu 24.04 installiert und java und mysql installiert, keine Probleme.

Aber bei mit hat JDBC ein Problem:
java.lang.ClassNotFoundException: com.mysql,jdbc.Driver.

Im Editor ausgeführt:
Java:
import java.sql.DriverManager;
import java.sql.Connection;
import java.sql.Statement;
import java.sql.ResultSet;
import java.sql.SQLException;
class Tutorial {
    public static void main (String ar[]) {
        try {
            System.out.println("Datenbank Tutorial 1");
            System.out.println("Datenbank 0");
            Class.forName("com.mysql.jdbc.Driver");
            System.out.println("Datenbank 1");
            Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3300/database_name", "root", "root");
            System.out.println("Datenbank 2");
            Statement st=con.createStatement();
            ResultSet rs=st.executeQuery("Select * from employee");
            System.out.println("Database Connected");
            rs.first();
            System.out.println("Id is " + rs.getInt(1) + " Name is " + rs.getString(2));
        } catch (SQLException ex) {
            System.out.println("Database Tutorial failed SQLException");
            ex.printStackTrace();
        } catch (ClassNotFoundException ec) {
            System.out.println("Database Tutorial failed ClassNotFoundException");
            ec.printStackTrace();

        }
    }
}
Ich habe mit Editor ausgeführt;
Code:
JAVA_HOME="/usr/lib/jvm/java-21-openjdk-amd64"
export JAVA_HOME
CLASSPATH="$CLASSPATH:/usr/lib/jvm/mysql-connector-java-8.4.0.jar"
export CLASSPATH
und in /usr/lib/jvm eingetragen:
default-java
java-1.21.0-openjdk-amd64
java-21-openjdk-amd64
mysql-connector-j-8.4.0.jar
mysql-connector-java-8.4.0.jar
Aber ich habe denFehler java.lang.ClassNotFoundException: com.mysql,jdbc.Driver.
Was mache ich falsch?
 
Zuletzt bearbeitet von einem Moderator:

PeterFoe

Aktives Mitglied
Mit "Class.forName("com.mysql.cj.jdbc.Driver")": java.lang.ClassNotFoundException; com.mysql.cj.jdbc.Driver

ohne "Class.forName ( ... )" UND
/*catch (ClassNotFoundException ec) { ... }
java.sql.SQLException:: no suitable driver found for jdbc:mysql://localhost:3300/database_name

Was nun?
 

PeterFoe

Aktives Mitglied
Mit Class.forName("com.mysql.cj.jdbc.Driver");
ClassNotFoundException: com.mysql.cj.jdbc.Driver

und ohne Class.forName und "catch (ClassNotFoundException cnf ) { ... }
java.sql.SQLException: No suitable Driver found for jdbc:mysql://localhost:3300/database_name

Und jetzt?
 

Oneixee5

Top Contributor
Wie du siehst fehlt der MySQL-JDBC-Treiber im Classpath. Es gibt nun verschiedene Möglichkeiten und es kommt etwas auf dein Projekt an.
Wenn du ein Maven-Projekt verwendest - empfohlenes Vorgehen - dann fügst du die Abhängigkeit deiner pom.xml hinzu.
Verwendest du einfach ein Java-Projekt in einer IDE, dann musst du dem Projekt-Classpath den Treiber hinzufügen. Wie das genau funktioniert ist von deiner IDE abhängig.
Arbeitest du einfach mit VIM oder im Terminal, dann musst du in deiner Shell-Session den Classpath richtig setzen und/oder beim Kompilieren/Starten die richtigen Parameter verwenden.
Die Installation von Ubuntu hat damit wenig zu tun. Es ist sinnvoller die Programmierung vom OS zu trennen, so musst du nicht Java und Linux gleichzeitig managen. Verwende am besten Maven-Projekte, das erleichtert dir auch später den Bau des von der IDE unabhängigen Programms.

 

PeterFoe

Aktives Mitglied
in .bashrc:
CLASSPATH="$CLASSPATH:/usr/lib/jvm/mysql-connector-java-8.4.0.jar"
export CLASSPATH

und in /usr/lib/jvm/mysql-connector-java-8.4.0.jar und /usr/lib/jvm/mysql-connector-j
 

KonradN

Super-Moderator
Mitarbeiter
Also der JDBC Driver ist meines Wissens nach in der mysql-connector-j-8.4.0.jar ... Ich weiss jetzt nicht, was ist der mysql-connector-java-8.4.0.jar sein soll - evtl. der Source Code?

Es bringt dann aber nichts, dass Du im Classpath nur das jar mit Source Code hast. Also vermutlich wirst Du einfach nur in der bashrc ändern müssen:
CLASSPATH="$CLASSPATH:/usr/lib/jvm/mysql-connector-j-8.4.0.jar"

Aber das setzt voraus, dass Du es auch auf der Kommandozeile aufrufst. Aber das ist auch etwas, das Du uns komplett verschwiegen hast: Wie genau startest Du denn Deinen Code?

Generell ist dein Vorgehen aus meiner Sicht dubios. Wozu die bashrc anpassen? Du kannst den Classpath z.B. direkt beim Start angeben, also etwas wie
java -cp ./mysql-connector-j-8.4.0.jar Tutorial

Aber wenn Du Dir die Java Entwicklung beibringen willst: Nimm doch bei sowas eine Entwicklungsumgebung? Dann hast Du ein Projekt und kannst in dem Projekt Abhängigkeiten hinzu fügen. Das kann ein Maven Projekt sein wie schon als eine Option angegeben aber es kann auch direkt ein Projekt in IntelliJ oder Eclipse sein. (Ich würde Dir aber auch direkt Maven empfehlen!)

Auf jeden Fall macht es keinen Sinn, Dein System zu verhunzen und irgendwas in /usr abzulegen oder eine CLASSPATH Variable generell anzupassen.
 

PeterFoe

Aktives Mitglied
KonradN,

jetzt mache ich das mit "kate Tutorial.java" und "java Tutorial.java".
Ich habe auch NetBeans.

Oneixee5,
"kate Tutorial.java" und "java Tutorial.java".
Ich habe auch NetBeans.

M.L, SQuirreL SQl Client, habe ich noch nie benutzt

Danke Peter
 

PeterFoe

Aktives Mitglied
KonradN,
ich habe jetzt
CLASSPATH="$CLASSPATH:/usr/lib/jvm/mysql-connector-j-8.4.0.jar"
export CLASSPATH
bei /home/peter/.bashrc eingetragen. /usr/lib/jvm/mysql-connector-j-8.4.0.jar ist gleich.
ich habe nur "chmod +x mysql-connector-j-8.4.0.jar" eingefügt

Aber SQLException:
No suitable driver found for jdbc:mysql://localhost:3306/database_name
 

KonradN

Super-Moderator
Mitarbeiter
Dann mach doch mit Netbeans ein neues Projekt: Java with Maven. Und dann dort die Abhängigkeit mit aufführen in der pom.xml und dann einfach über Netbeans starten ….

Das wäre ein möglicher, relativ einfacher, Weg.
 

PeterFoe

Aktives Mitglied
Danke,
ich habe nochmal apache-maven heruntergeladen und installliert. Und wieder in .bashrc eingetragen..
Und in NetBeans die pom.xls wieder eingetragen.

Dann noch: Access denied for "root"@"localhost"
mysql> set global validate_password.policy=low;
mysql> set global validate_password.length=8;
mysql> set global validate_password.number_count=0;
mysql> alter user "root"@"localhost" identified with mysql_native_password by "RootRoot&"; <- anderes Passwort
mysql> flush privileges;

Jetzt geht es in NetBeans,
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
R Warum Class.forName(); Allgemeine Java-Themen 7
S Methoden Class.forName() >> Methoden - Reihenfolge Allgemeine Java-Themen 5
J Class.forName und CLASSPATH -Problem Allgemeine Java-Themen 5
D Class.forName Allgemeine Java-Themen 2
T URLClassLoader und Class.forName Allgemeine Java-Themen 2
A Plugins laden mit Class.forName() Allgemeine Java-Themen 2
M Class.forName und char Allgemeine Java-Themen 10
H Class.forName(lokaleKlasse) Allgemeine Java-Themen 5
D NoClassDefFoundError: Could not initialize class Allgemeine Java-Themen 0
J Class to link Java Allgemeine Java-Themen 4
C Was passt hier nicht bei der Calendar-Class Allgemeine Java-Themen 2
E Class.getResourceAsStream() gibt null zurück Allgemeine Java-Themen 2
Erwin82a Object cannot be converted to Custom Class in Lampda Expression Allgemeine Java-Themen 2
T Java Robot Class - Bot Allgemeine Java-Themen 3
S Class File Editor -> Source not found Allgemeine Java-Themen 4
G javafx "class path" exception Allgemeine Java-Themen 5
S Java class direved from inner class Allgemeine Java-Themen 6
S Inner Class Allgemeine Java-Themen 11
K Wildcard und class type Allgemeine Java-Themen 9
M Java model class ? Allgemeine Java-Themen 9
Thallius Ist meine static Helper Class Thread save? Allgemeine Java-Themen 9
S class path resource [config.properties}] cannot be opened because it does not exist Allgemeine Java-Themen 4
J Reflection Aufruf: .class durch .dll ersetzen Allgemeine Java-Themen 4
T Compiler-Fehler NoClassDefFoundError beim Laden einer Class Allgemeine Java-Themen 11
J Class Decompile als String (Procyon) Allgemeine Java-Themen 2
H Class 'java.io.BuferedReader' is not present in JRE Emulation Libary | GWT Fehler?! Allgemeine Java-Themen 0
I Datentypen String in class sicher verwahren Allgemeine Java-Themen 17
R Dynimc Class Loading Allgemeine Java-Themen 5
J Inner class + Leer-Konstruktor Allgemeine Java-Themen 1
Neumi5694 Methoden Generic: Rückgabetyp als Class-Parameter übergeben Allgemeine Java-Themen 3
D Collections.sort funktioniert nicht in exportierten .class Dateien Allgemeine Java-Themen 10
V Eclipse .class Dateien Allgemeine Java-Themen 9
KeexZDeveoper Von .class zu .java Allgemeine Java-Themen 7
N Wo ist Object.class ? Allgemeine Java-Themen 0
K Nicht alle class-Dateien im JRE? Allgemeine Java-Themen 2
M *.class Files ausführen Allgemeine Java-Themen 2
L Klassen Nested Class In Nested Class Allgemeine Java-Themen 3
perlenfischer1984 Dialect class not found exception Allgemeine Java-Themen 15
Tort-E Manifest Main-Class Allgemeine Java-Themen 8
I JSoup Class auslesen Allgemeine Java-Themen 1
K Generic class und Reflection Allgemeine Java-Themen 2
R .class Datei in .jar austauschen Allgemeine Java-Themen 2
R Java .class-File-Konstrunkt mit Programm visualisieren Allgemeine Java-Themen 18
A main-class Not found Allgemeine Java-Themen 3
G Java Class Intrumentation mit Annotations in Laufzeit Allgemeine Java-Themen 1
N Per Reflection auf (method) local inner class zugreifen? Allgemeine Java-Themen 3
P JDK installieren Error: Could not find or load main class HelloWorld.java Allgemeine Java-Themen 3
B public class JarFilter extends FileFilter « Falsch? Allgemeine Java-Themen 4
D Object nach Vererbung mit Class Object überprüfen Allgemeine Java-Themen 4
T Hash von *.class-Datein überprüfen Allgemeine Java-Themen 1
F java.lang.ClassNotFoundException: .class Allgemeine Java-Themen 5
T InvalidClassException - Read null attempting to read class descriptor for object Allgemeine Java-Themen 8
Phash Can't find Main Class Allgemeine Java-Themen 4
B Erste Schritte Plugin erkennen und Class Dateien anzeigen lassen Allgemeine Java-Themen 3
B json zu java class Allgemeine Java-Themen 2
antonbracke Aus Jar eine Class laden und damit arbeiten! Allgemeine Java-Themen 5
D Class<CAP#1> statt Class<...> Allgemeine Java-Themen 5
T Class-Objekt mit URLClassloader Allgemeine Java-Themen 7
A Class Datei aus Verzeichnis über URLClassLoader laden Allgemeine Java-Themen 2
L Class Files , Methode .delete() Allgemeine Java-Themen 13
E NetBeans warning: [options] bootstrap class path not set in conjunction with -source 1.6 Allgemeine Java-Themen 4
X Could not find the main class programm will exit (textdokument) Allgemeine Java-Themen 3
S Could not find the main class Allgemeine Java-Themen 7
B Mal wieder "Could not find the main class" Allgemeine Java-Themen 3
B Variable class in java.lang.Object Allgemeine Java-Themen 11
C Could not find the main class. Allgemeine Java-Themen 15
S Klassen .jar - eine .class datei ändern? Allgemeine Java-Themen 23
A Could not find main class: start Allgemeine Java-Themen 5
S main() class finden Allgemeine Java-Themen 7
hdi Could not find main class? Allgemeine Java-Themen 8
C class.class angefordert ? Allgemeine Java-Themen 2
B Test$1.class mit dem javac compiler Allgemeine Java-Themen 7
G jar Datei findet Main Class nicht... Allgemeine Java-Themen 2
P Java Editor Could not find the main class GUI. Programm will exit. Allgemeine Java-Themen 3
D class Datei einlesen Allgemeine Java-Themen 4
T Interface > Abstract > Class Allgemeine Java-Themen 11
TheDarkRose Subversion .class Dateien auch commiten? Allgemeine Java-Themen 3
D API - Beispiel + static member in inner (non static) class Allgemeine Java-Themen 2
E String name in class convertieren Allgemeine Java-Themen 4
F Änderung in .jar bzw. .class vornehmen ? Allgemeine Java-Themen 18
H2SO3- bestimmte class immer mit 1.4 compilieren Allgemeine Java-Themen 5
B class dateien "einlesen" und objekte erzeugen Allgemeine Java-Themen 6
G Unterschied MyClass.class vs this Allgemeine Java-Themen 2
S mit Class eine Klasse nur einmal instantiieren Allgemeine Java-Themen 4
Sonecc Zugriff auf Class File einer anderen Jar während der Laufzeit Allgemeine Java-Themen 2
M Klasse aus xyz.class Datei laden / package entfernen? Allgemeine Java-Themen 4
BattleMaster246 Could not find the Main class Allgemeine Java-Themen 30
N class Task extends TimerTask ohne Blockieren Allgemeine Java-Themen 15
H .class in .java umwandeln Allgemeine Java-Themen 3
T class.newinstance + try/catch-konstruktor Allgemeine Java-Themen 6
X Cannot refer to a non-final variable settings inside an inner class defined in a different method Allgemeine Java-Themen 4
T Class-files zur Laufzeit zu Reflection-Zwecken laden Allgemeine Java-Themen 18
G Thread in Methode oder in inner class Allgemeine Java-Themen 3
woezelmann referenz der outer class aus static nested class heraus Allgemeine Java-Themen 7
reibi Main-Class in Jarfile Allgemeine Java-Themen 3
E Timer class macht einfach garnichts :/ Allgemeine Java-Themen 6
S Class RGB Farbe Allgemeine Java-Themen 2
S JavaDoc aus .class Datei extrahieren Allgemeine Java-Themen 5
mongole Class.class.getResource(...) Allgemeine Java-Themen 10
N Probleme mit .jar 'Could not find main class' Allgemeine Java-Themen 3

Ähnliche Java Themen

Neue Themen


Oben