Вопрос-ответ

ClassNotFoundException com.mysql.jdbc.Driver [duplicate]

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)

Итак, что я здесь делаю не так?

Переведено автоматически
Ответ 1

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


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


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


  3. Выберите Добавить внешние банки данных, чтобы импортировать драйвер mysql.


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


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


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


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

Ответ 2

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

Ответ 3

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

Ответ 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.

java exception jdbc