КлассNotFoundException com.mysql.jdbc.Driver

Этот вопрос, возможно, спросил здесь несколько раз. После выполнения какого-либо поиска в Google для указанной выше ошибки и выполнения некоторого обновления я не могу понять, почему я все еще получаю эту ошибку. Я уже поместил мой драйвер: mysql-connector-java-5.1.5-bin в путь к классам:

Java_Home\jre\lib\
Java_Home\jre\lib\ext\
Java_Home\lib

и код, который я использую для подключения к базе данных mysql:

try{
Class.forName("com.mysql.jdbc.Driver");

Connection con=DriverManager.getConnection("jdbc:mysql://localhost:3306/mail","root","");

Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery("select message_body from deadletter");
String dbtime;
while (rs.next()) {
dbtime = rs.getString(1);
System.out.println(dbtime);
} 

con.close();

}
catch (SQLException e) {
        System.out.println("Connection Failed! Check output console");
        e.printStackTrace();
        }

    }

а полный стек вышеизложенного исключения:

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:307)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
    at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
    at java.lang.Class.forName0(Native Method)  
    at java.lang.Class.forName(Class.java:169)
    at mail.main(mail.java:114)  

Теперь, что я тут делаю?

Ответы

Ответ 1

Наиболее распространенная причина заключается в том, что у вас есть конфликт, в котором загружаются ваши классы. Например, если у вас есть 2 местоположения, а у одного есть JDBC-драйверы, а другой нет, то если ваш загрузчик классов загружается с 1-го места, а какой-то класс из 1-го места хочет использовать драйвер - драйвера там нет. Поэтому найдите дубликаты JAR, которые используют ваш драйвер.

Ответ 2

Я тоже боролся с той же проблемой и, наконец, получил решение. Просто скопируйте MySql-Connector.jar в папку Tomcat lib, а затем удалите банку из папки webapp lib, а затем запустите проект.

Ответ 3

Если вы столкнулись с этой проблемой с Eclipse, я выполнял множество разных решений, но тот, который работал у меня, это:

1) Щелкните правой кнопкой мыши папку вашего проекта и откройте "Свойства".

2) На правой панели выберите "Путь сборки Java", затем перейдите на вкладку "Библиотеки".

3) Выберите Добавить внешние JAR для импорта драйвера mysql.

4) На правой панели выберите узел развертывания.

5) Выберите "Добавить...", затем выберите "Записи пути Java" и нажмите "Далее".

6) Вы должны увидеть драйвер sql в списке. Выберите его и нажмите сначала.

И это! Попробуйте запустить его снова! Ура!

Ответ 4

У меня такая же проблема но я нашел это после долгого поиска: http://www.herongyang.com/JDBC/MySQL-JDBC-Driver-Load-Class.html

Но я сделал некоторые изменения. Я поместил драйвер в ту же папку, что и мой ConTest.java файл, и скомпилируйте его, в результате получим ConTest.class.

Итак, в этой папке есть

ConTest.class
mysql-connector-java-5.1.14-bin.jar

и я пишу это

java -cp .;mysql-connector-java-5.1.14-bin.jar ConTest

Таким образом, если вы не используете какой-либо IDE только cmd в windows или shell в linux.

Ответ 5

Что вы поставили точно в lib, jre/lib или jre/lib/ext? Это была jar mysql-connector-java-5.1.5-bin.jar или что-то еще (например, каталог)?

Кстати, я бы не поместил его в lib, jre/lib или jre/lib/ext, есть другие способы добавить jar в путь к классам. Это можно сделать, добавив в него явную переменную среды CLASSPATH. Или вы можете использовать опцию -cp java. Но это еще одна история.

Ответ 6

Если вы используете NetBeans, выполните следующие действия:

  • Щелкните правой кнопкой мыши на "Библиотеки" и выберите "Добавить библиотеку".
  • Прокрутите список "Глобальные библиотеки" и выберите "Драйвер JDBC MySQL" и нажмите "Добавить библиотеку".

Ответ 7

этот ans предназначен для пользователя eclipse......

Сначала проверьте, что jarb jar файл добавляется в библиотеки ушей....

если да... то проверьте... в веб-содержимом- > веб-папка Inf- > lib

и в прошлом здесь jdbc jar файл в папке lib.....

Ответ 8

В NetBeans

  • щелкните правой кнопкой мыши по библиотекам, выберите properties
  • выберите вкладку rub
  • вам нужно добавить mysql-connector-java.jar и применить

Ответ 9

Хорошо, я нахожу решение, изменяющее путь mysql-conector-java.jar к следующему пути:

ProjectName/WebContent/Web-inf/lib/mysql-conector-java.jar 

Итак, вам нужно добавить коннектор для повторного проекта и удалить предыдущий.

Ответ 10

Единственное, что сработало для меня, - это загрузить mysql-connector-java-5.0.8-bin.jar прямо с веб-сайта MySQL:

http://dev.mysql.com/downloads/connector/j/3.1.html

Затем, если вы используете Eclipse, вставьте этот mysql-connector-java-5.0.8-bin.jar в папку WEB-INF lib

Если не работает, попытайтесь с любыми решениями, размещенными по этой ссылке: http://javarevisited.blogspot.com/2012/03/jdbc-javalangclassnotfoundexception.html

Ответ 11

1) Загрузите коннектор отсюда https://www.mysql.com/products/connector/

2) Выберите JDBC-драйвер для mysql

3) щелкните по независимой платформе (независимо от архитектуры), архиву ZIP

4) Загрузите файл и разархивируйте его

5) (Для Eclipse) Щелкните Project- > properties- > Java Build Path- > Библиотеки (Для Netbeans) щелкните правой кнопкой мыши библиотеки на левой панели → добавить jar

6) Нажмите, чтобы добавить внешнюю банку

7) выберите mysql-connector-java-5.1.40-bin.jar

8) Готово!

Ответ 12

Вы должны скачать коннектор MariaDB.
Тогда:

  • Разверните проект.
  • Щелкните правой кнопкой мыши Libraries.
  • Выберите Add Jar/Folder.
  • Добавить mariadb-java-client-2.0.2.jar, который вы только что загрузили.

Ответ 13

В netbean Щелкните правой кнопкой мыши на своем проекте, затем щелкните "Библиотеки", затем запустите вкладку "Добавить", добавьте библиотеку, затем выберите "mysql connector"

Ответ 14

Я держу кувшин mysql-коннектора с моим проектом, а не с Javahome. В результате вы можете быть уверены, что его можно найти, убедившись в его локальном пути к классам. Большой потенциал заключается в том, что вы можете увеличить проект на другой машине и не беспокоиться о (или забыть), чтобы настроить его снова. Мне лично нравится включать его в контроль версий.

Ответ 15

Хорошо. Могу ли я также внести свой вклад в решение. Щелкните правой кнопкой мыши на project -properties → Развертывание сборки... там вам нужно добавить mysql-connector-java.jar и применить его..., что делает ваш prject настроенным с помощью веб-библиотек с этим соединителем sql... Это сработало для меня.. Я надеюсь, что это сработает и для вас, ребята, а также

Ответ 16

следить за тем, чтобы аргумент класса. Метод forName - это "com. mysql. jdbc. Driver". Если да, то посмотрите, что разъем mysql присутствует в папке lib проекта. если да, то следите за тем, чтобы тот же самый соединитель mysql. jar файл находится в переменной ClassPath (системная переменная).

Ответ 17

Большинство возможных решений было рассмотрено выше. Из моего опыта этой проблемы я разместил mysql-connector-jar в папке /WEB -INF/lib модуля webapp, и он отлично работал у меня.

Ответ 18

Я испытал ту же ошибку после обновления моего java до 1.8.0_101. Попробуй это: я. Удалите mysql.jar для вашего пути построения. II. Очистить сервер и проект III. Добавьте файл jar обратно в путь сборки.

Работал для меня.

Ответ 19

Просто скопируйте файл JAR для диска JDBC MySQL и вставьте его в Tomcat или что-то другое в папку lib сервера. Это работает для меня.