ClassNotFoundException: com.mysql.jdbc.Driver, но он находится в пути к классам

введите описание изображения здесь

У меня есть это исключение, но файл Jar находится в указанных библиотеках.

Не знаю, в чем проблема. Код в порядке, и я добавил все в путь сборки. Строка DRIVER_CLASS_NAME = "com.mysql.jdbc.Driver";

final String DBMS = "jdbc:mysql";

final String SERVER = "localhost";

final String DATABASE = "mapDB";

final int PORT=3306; 

final String USER_ID = "MapUser";

final String PASSWORD = "map";

Connection conn;//gestisce una connessione 

private void initConnection() throws DatabaseConnectionException {
    try {
        Class.forName(DRIVER_CLASS_NAME);/
    }catch(ClassNotFoundException e) {
        e.printStackTrace();
    }

    try {

        conn=(Connection)DriverManager.getConnection(DBMS + "://" + SERVER + ":" + PORT + "/" + DATABASE,USER_ID,PASSWORD);
    }catch(SQLException ex) {
        throw new DatabaseConnectionException();
    }
}
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
0
755
3

Ответы 3

Похоже, что существуют разные версии соединителей MySQL JDBC, как показано на втором отпечатке.

Возможно, наличие двух ссылок на одну и ту же библиотеку вызывает исключение ClassNotFoundException, или сборка вашего проекта устарела.

Я предлагаю вам оставить только одну версию коннектора в ссылках вашего проекта, очистить и построить проект заново.

Да. Но я понял, что у меня есть другой проект с такой же строкой DRIVER_CLASS_NAME и делающий то же самое. Это проблема?

Sante Altamura 31.05.2018 23:26

Я так не думаю. Возможно, изменение порядка ссылок в пути к классам может решить эту проблему. Попробуйте поместить ссылку на коннектор в путь к классам, как показано в этой распечатке: i.stack.imgur.com/zjqPr.png

Matheus Canon 31.05.2018 23:32

Кроме того, если вы используете Maven или Gradle, попробуйте собрать проект в командной строке, например: mvn clean install.

Matheus Canon 31.05.2018 23:35

Вы пытались удалить mysql-connector-java-5.1.7-bin.jar, просто сохраните mysql-connector-java-8.0.11.jar

Да. Но я понял, что у меня есть другой проект с такой же строкой DRIVER_CLASS_NAME и делающий то же самое. Это проблема? Я должен удалить этот проект из затмения? Есть другое решение?

Sante Altamura 31.05.2018 23:16

Если вы сохраните обе версии, вам нужно будет проверить операторы импорта: import java.sql.DriverManager; import java.sql.SQLException; import com.mysql.jdbc.Connection; и импортировать java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; начиная с версии 8.0.11 Загрузка класса com.mysql.jdbc.Driver'. This is deprecated. The new driver class is com.mysql.cj.jdbc.Driver '. Т

Anshul Khandelwal 31.05.2018 23:40

Ваш изображение показывает, что у вас есть mysql-connector-java-5.1.7-bin.jar в вашем пути к классам.

Когда ищите этот файл в Репозиторий Maven, есть много версий 5.1.x, но не 5.1.7.

Казалось бы, 5.1.7 ошибочен и был отозван.

Попробуйте использовать другую версию 5.1.x, например последний, который в настоящее время является 5.1.46.

Другие вопросы по теме