java.lang.ClassNotFoundException: com.mysql.jdbc.Driver di Eclipse


89

Apa yang salah dengan kode ada banyak kesalahan saat debugging. Saya menulis kode untuk kelas tunggal untuk terhubung dengan database mysql.

Ini kode saya

package com.glomindz.mercuri.util;
import java.sql.Connection;
import java.sql.Driver;
import java.sql.DriverManager;
import java.sql.SQLException;

public class MySingleTon {
    String url = "jdbc:mysql://localhost:3306/";
    String dbName = "test";
    String driver = "com.mysql.jdbc.Driver";
    String userName = "root";
    String password = "";

    private static MySingleTon myObj;   
    private Connection Con ;
    private MySingleTon() {
        System.out.println("Hello");
        Con= createConnection();
    }

    @SuppressWarnings("rawtypes")
    public Connection createConnection() {
        Connection connection = null;
        try {
            // Load the JDBC driver
            Class driver_class = Class.forName(driver);
            Driver driver = (Driver) driver_class.newInstance();
            DriverManager.registerDriver(driver);
            connection = DriverManager.getConnection(url + dbName);
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (SQLException e) {
            e.printStackTrace();
        } catch (IllegalAccessException e) {
            e.printStackTrace();
        } catch (InstantiationException e) {
            e.printStackTrace();
        }
        return connection;
    }

    /**
     * Create a static method to get instance.
     */
    public static MySingleTon getInstance() {
        if (myObj == null) {
            myObj = new MySingleTon();
        }
        return myObj;
    }

    public static void main(String a[]) {
        MySingleTon st = MySingleTon.getInstance();
    }
}

Saya baru mengenal java. Tolong bantu.


2
Apakah toples driver ada di classpath Anda?
NINCOMPOOP

pastikan bahwa Anda telah melakukan sinkronisasi pada getInstance ()
Siddharth


1
Anda perlu menempelkan file jar ke direktori lib server web Anda, jika Anda mendapatkan kesalahan saat runtime. sedangkan, jika Anda mendapatkan error pada waktu kompilasi, tambahkan jar di jalur build.
djangodude

Jawaban:


124

Tampaknya pustaka konektivitas mysql tidak disertakan dalam proyek ini. Selesaikan masalah dengan mengikuti salah satu solusi yang diusulkan:

  • SOLUSI PROYEK MAVEN

Tambahkan dependensi mysql-connector ke file proyek pom.xml:

<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>5.1.39</version>
</dependency>

Ini Anda adalah semua versi: https://mvnrepository.com/artifact/mysql/mysql-connector-java

  • SOLUSI SEMUA PROYEK

Tambahkan perpustakaan jar secara manual ke proyek.

Klik kanan proyek -> jalur build -> konfigurasi jalur build

Di Libraries Tab tekan Add External Jar dan Selecttoples Anda.

Anda dapat menemukan zip untuk konektor mysql di sini

  • Penjelasan:

Saat membuat proyek, java memberikan pengecualian kepada Anda karena file (kelas com.mysql.jdbc.Driver) dari pustaka konektivitas mysql tidak ditemukan. Solusinya adalah menambahkan pustaka ke proyek, dan java akan menemukan file com.mysql.jdbc.Driver


7
Bagaimana jika kita tidak menggunakan IDE apa pun dan hanya berjalan di terminal kita? Lalu bagaimana cara mengatasi masalah ini?
Achyuta Aich

2
Masalah tidak akan terselesaikan sampai Anda menambahkan mysql-connector-java-8.0.15.jarfile ke apache-tomcat-9.0.16\libfolder, seperti yang disarankan oleh @Asad.
SWETA KESUR

53

Jika Anda mendapatkan kesalahan dalam IDE Anda (kesalahan waktu kompilasi), Anda perlu menambahkan file jar mysql-connector ke libs Anda dan menambahkannya ke perpustakaan referensi proyek Anda juga.

Jika Anda mendapatkan kesalahan ini saat menjalankannya, mungkin itu karena Anda belum menyertakan file JAR konektor mysql ke folder lib server web Anda.

Tambahkan mysql-connector-java-5.1.25-bin.jarke classpath Anda dan juga ke direktori lib server web Anda. Path lib Tomcat diberikan sebagai contohTomcat 6.0\lib


1
Bagaimana jika kita tidak menggunakan IDE apa pun dan hanya berjalan di terminal kita? Lalu bagaimana cara mengatasi masalah ini?
Achyuta Aich

jika Anda tidak menggunakan IDE apa pun maka Anda harus menambahkan path file jar ke classpath Anda
Asad

2
Menambahkan ke server lib adalah hal penting yang perlu diperhatikan di sini, terima kasih berhasil untuk saya
Chandra_S

14

Untuk proyek berbasis Gradle, Anda memerlukan ketergantungan pada Konektor Java MySQL :

dependencies {
    compile 'mysql:mysql-connector-java:6.0.+'
}

Apa yang akhirnya berhasil untuk saya adalah runtime 'mysql:mysql-connector-java:6.0.+'.
itsmichaelwang

12

Setiap orang telah menulis jawaban tetapi saya masih terkejut bahwa tidak ada yang benar-benar menjawabnya dengan menggunakan cara sederhana terbaik.
Orang-orang menjawab dengan menyertakan file jar. Tapi, kesalahan tetap akan terjadi.

Alasannya adalah, jar tidak di-deploy saat proyek dijalankan. Jadi, yang perlu kita lakukan adalah memberi tahu IDE untuk menerapkan jar ini juga.

Orang-orang di sini telah menjawab berkali-kali sehingga meletakkan file jar itu di folder lib WEB-INF. Kelihatannya oke, tapi kenapa melakukannya secara manual. Ada cara sederhana. Periksa langkah-langkah di bawah ini:

Langkah 1: Jika Anda belum mereferensikan file jar ke dalam proyek, referensikan seperti ini.

Klik kanan pada proyek dan pergi ke properti proyek. Lalu, buka jalur build java, lalu tambahkan file jar eksternal melalui itu.

Tapi ini tetap tidak akan menyelesaikan masalah karena menambahkan jar eksternal melalui jalur build hanya membantu dalam mengompilasi kelas, dan jar tidak akan diterapkan saat Anda menjalankan proyek. Untuk itu ikuti langkah ini

Klik kanan pada proyek dan pergi ke properti proyek. Lalu, buka Deployment Assembly lalu tekan Add , lalu buka entri java build path dan tambahkan library Anda apakah itu jstl, mysql atau file jar lainnya. tambahkan mereka ke penerapan. Di bawah ini adalah dua gambar yang menampilkannya.

Sebelum Menambahkan

Setelah Menambahkan


Terima kasih Bung. Itu berhasil. Mengapa orang lain tidak menyebutkan ini mungkin karena ini adalah solusi hanya untuk aplikasi web Dinamis yang menggunakan Eclipse
Sayka

@sayka ya, mungkin itu masalahnya.
Tahir Hussain Mir

11

Anda harus menyertakan driver jar untuk MySQL MySQL Connector Jar di jalur kelas Anda.

Jika Anda menggunakan Eclipse: Bagaimana cara menambahkan perpustakaan dependen di Eclipse

Jika Anda menggunakan baris perintah, sertakan jalur ke jar driver menggunakan parameter -cp java.

java -cp C:\lib\* Main

Bagaimana jika kita tidak menggunakan IDE apa pun dan hanya berjalan di terminal kita? Lalu bagaimana cara mengatasi masalah ini?
Achyuta Aich

1
Menggunakan -cpmemberi Tidak dapat menemukan atau memuat kesalahan kelas utama. Apakah saya perlu meletakkan kelas Utama ke folder lain?
zygimantus


8

API JDBC sebagian besar terdiri dari antarmuka yang bekerja secara independen dari database apa pun. Driver khusus database diperlukan untuk setiap database yang mengimplementasikan JDBC API.

Pertama, unduh jar konektor MySQL dari www.mysql.com, lalu:

Right Click the project -- > build path -- > configure build path

Di tab perpustakaan tekan Add External Jardan pilih toples Anda.


3

Untuk proyek berbasis Maven, Anda memerlukan ketergantungan.

<dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>5.1.38</version>
</dependency>

2
Mengapa PostgreSQL? Pertanyaannya adalah tentang MySQL.
naXa


2

Dalam proyek tersebut ke folder Libraries -> klik kanan -> Add Library -> Mysqlconnector 5.1


2

Konektor driver tidak ada di jalur build Anda. Konfigurasikan jalur build dan arahkan ke 'mysql-connector-java-5.1.25-bin.jar' (periksa versi yang Anda gunakan). Alternatifnya Anda bisa menggunakan maven: D


2

Untuk IntelliJ Idea, buka struktur proyek Anda (File, Struktur Proyek), dan tambahkan file .jar konektor mysql ke perpustakaan global Anda. Sesampai di sana, klik kanan padanya dan pilih 'Tambahkan ke Modul'. Tekan Apply / OK dan Anda harus melakukannya dengan baik.


1

Sepele karena mungkin tampak dalam kasus saya proyek netbeans versi maven 7.2.1 berbeda. Ada folder dalam proyek yang disebut dependensi. Klik kanan dan kemudian akan muncul jendela popup tempat Anda dapat mencari paket. Di area kueri, letakkan

mysql-connector

Ini akan memunculkan pertandingan (tampaknya melakukan ini terhadap beberapa repositori). Klik dua kali lalu instal.


1

Itu karena folder WEB-INF tidak ada di lokasi di sub direktori dalam kesalahan. Anda dapat mengkompilasi aplikasi untuk menggunakan folder WEB-INF di bawah public_html ATAU salin folder WEB-INF di sub folder seperti pada kesalahan di atas.


0

Pengecualian juga dapat terjadi karena jalur kelas tidak ditentukan.

Setelah berjam-jam meneliti dan benar-benar menelusuri ratusan halaman, masalahnya adalah jalur kelas perpustakaan tidak ditentukan.

Tetapkan jalur kelas sebagai berikut di mesin windows Anda

set classpath=path\to\your\jdbc\jar\file;.


0

Jika Anda menggunakan tomcat maka bersama dengan direktori proyek Anda juga harus menyalin file jar konektor database ke tomcat / lib. ini berhasil untuk saya


0

Ini harus digunakan mulai tahun 2020

    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>8.0.18</version>
    </dependency>

0

Saya sedang mengembangkan aplikasi JavaFX11 sederhana dengan Database SQLite di Eclipse IDE . Untuk menghasilkan laporan saya menambahkan toples Jasper. Tiba-tiba muncul kesalahan "INI" .

java.lang.ClassNotFoundException: com.mysql.jdbc.Driver

Itu berjalan dengan baik (SEBELUM PENAMBAHAN INI). Tapi tiba-tiba!

Saya tidak menggunakan maven atau manajer lain untuk aplikasi sederhana ini. Saya menambahkan stoples secara manual.

Saya membuat "Perpustakaan Pengguna" dan menambahkan toples saya dari folder eksternal.

AREA YANG TERJADI MASALAH: "Pustaka Pengguna" saya ditandai sebagai pustaka sistem. Saya baru saja menghapus tandanya. Sekarang bukan perpustakaan sistem. "SEKARANG PROYEK SAYA BERFUNGSI BAIK".

DEBUG MYSELF: Mencoba hal lain: SAAT BERJALAN KONFIGURASI: Coba, hapus perpustakaan dan tambahkan toples satu per satu dan lihat. - di sini Anda harus menghapus semua toples satu per satu, tidak ada pilih semua dan hapus di gerhana sekarang dalam konfigurasi yang dijalankan. Jadi pesan kesalahan berubah dari satu toples ke yang lain.

Semoga ini bisa membantu seseorang.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.