ClassNotFoundException 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)
Теперь, что не так я делаю здесь?
21 ответ
Наиболее частая причина - конфликт между тем, откуда загружаются ваши классы. Например, если у вас есть 2 местоположения, и у одного есть драйверы JDBC, а у другого нет, то, если ваш загрузчик классов загружается из 1-го местоположения, а некоторый класс из 1-го местоположения хочет использовать драйвер - драйвера там нет. Так что ищите дубликаты JAR, которые используют ваш драйвер
Если вы столкнулись с этой проблемой в Eclipse, я следовал многим различным решениям, но одно из них, которое сработало для меня, таково:
Щелкните правой кнопкой мыши папку вашего проекта и откройте Свойства.
На правой панели выберите "Путь сборки Java", затем перейдите на вкладку "Библиотеки".
Выберите Add External JARs, чтобы импортировать драйвер mysql.
На правой панели выберите Deployment Assembly.
Выберите Add..., затем выберите Java Build Path Entries и нажмите Next.
Вы должны увидеть драйвер sql в списке. Выберите его и нажмите первым.
И это все! Попробуйте запустить его снова! Ура!
Я тоже боролся с той же проблемой и, наконец, нашел решение для нее. Просто скопируйте MySql-Connector.jar
в Tomcat's lib
папку, а затем удалите банку из веб-приложения lib
папку, а затем запустите проект.
У меня та же проблема, но я нашел ее после долгого поиска: 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.
Это ответ для пользователя затмения......
сначала проверьте, добавлен ли jar-файл jdbc в библиотеки Ear.
если да... то проверьте... в папке Web Content->web Inf->lib
и мимо здесь jar-файл jdbc в папке lib.....
1) Загрузите соединитель здесь https://www.mysql.com/products/connector/
2) Выберите драйвер JDBC для MySQL
3) нажмите Независимый от платформы (Независимый от архитектуры), ZIP архив
4) Загрузите файл и распакуйте его
5) (Для Eclipse) Щелкните "Проект" -> "Свойства" -> "Путь сборки Java" -> "Библиотеки (для NetBeans)", щелкните правой кнопкой мыши библиотеки на левой панели -> добавить банку
6) Нажмите на кнопку добавить внешнюю банку.
7) выберите mysql-connector-java-5.1.40-bin.jar
8) Готово!
Если вы используете NetBeans, выполните следующие действия:
- Щелкните правой кнопкой мыши на "Библиотеки" и выберите "Добавить библиотеку".
- Прокрутите вниз список "Глобальные библиотеки", выберите "Драйвер JDBC MySQL" и нажмите "Добавить библиотеку".
Что вы положили именно в lib
, jre/lib
или же jre/lib/ext
? Это была банка mysql-connector-java-5.1.5-bin.jar
или что-то еще (например, каталог)?
Кстати, я бы не стал lib
, jre/lib
или же jre/lib/ext
Есть и другие способы добавить банку в путь к классам. Вы можете сделать это, явно добавив переменную среды CLASSPATH. Или вы можете использовать -cp
вариант java
, Но это другая история.
Вы должны скачать разъем MariaDB.
Затем:
- Расширьте свой проект.
- Щелкните правой кнопкой мыши на
Libraries
, - Выбрать
Add Jar/Folder
, - добавлять
mariadb-java-client-2.0.2.jar
который вы только что скачали.
В NetBeans
- щелкните правой кнопкой мыши по библиотекам, выберите
properties
- Выбрать
rub
табуляция - там вам нужно добавить
mysql-connector-java.jar
и применить
В IntelliJ Делайте, как говорят в Eclipse: "Если вы сталкиваетесь с этой проблемой в Eclipse, я следую многим различным решениям, но одно из них мне помогло:
Щелкните правой кнопкой мыши папку вашего проекта и откройте Свойства.
На правой панели выберите "Путь сборки Java", затем перейдите на вкладку "Библиотеки".
Выберите Add External JARs, чтобы импортировать драйвер mysql.
На правой панели выберите Deployment Assembly.
Выберите Add..., затем выберите Java Build Path Entries и нажмите Next.
Вы должны увидеть драйвер sql в списке. Выберите его и нажмите первым.
И это все! Попробуйте запустить его снова! Ура!"
Здесь мы должны добавить файл jar в Структура проекта -> Библиотеки -> +(добавить)
Большая часть возможного решения была рассмотрена выше. Исходя из моего опыта в этой проблеме, я поместил mysql-connector-jar в папку /WEB-INF/lib модуля webapp, и он работал нормально для меня.
Хорошо, я нахожу решение, меняющее путь mysql-conector-java.jar на следующий путь:
ProjectName/WebContent/Web-inf/lib/mysql-conector-java.jar
Поэтому вам нужно снова добавить конктор в проект и удалить предыдущий.
В Netbean щелкните правой кнопкой мыши свой проект, затем щелкните "Библиотеки", затем вкладку "Выполнить", добавьте библиотеку, затем выберите MySQL коннектор.
Хорошо... Может быть, я тоже могу внести свое решение... Щелкните правой кнопкой мыши по проекту -properties -> Развертывание сборки... там вам нужно добавить mysql-connector-java.jar и применить его..., что делает ваш проект настроенный с веб-библиотеками, у которых есть этот соединитель sql... Это работало для меня.. Я надеюсь, что это работает и для вас, ребята
Я испытал ту же ошибку после обновления моего Java до 1.8.0_101. Попробуйте это: я. Удалите mysql.jar из вашего пути сборки. II. Очистите сервер и проект iii. Добавьте файл JAR обратно в путь сборки.
Работал на меня.
Просто скопируйте файл jar диска MySQL JDBC и вставьте его в Tomcat или в любую другую папку lib на сервере. Меня устраивает.
Я держу банку mysql-connector с моим проектом, а не в Javahome. В результате вы можете быть уверены, что его можно найти, убедившись, что он находится в локальном пути к классам. Большой плюс в том, что вы можете перенести проект на другую машину, и вам не придется беспокоиться о (или забыть), чтобы настроить это снова. Мне лично нравится включать это в контроль версий.
Просто скопируйте и вставьте jar mysqlconnector в папку вашего проекта, а затем постройте путь, он определенно будет работать.
Единственная вещь, которая работала для меня, была загрузка 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
Следите за тем, чтобы аргумент класса. Метод forName в точности "com. mysql. jdbc. Driver". Если да, то проследите за тем, чтобы соединитель mysql присутствовал в папке lib проекта. если да, то позаботьтесь о том же разъеме mysql. Файл jar находится в переменной ClassPath (системная переменная).