Не удалось загрузить класс com.mysql.jdbc.Driver с помощью class.forName («com.mysql.jdbc.Driver»).

0

Я занимаюсь простым Java-приложением, которое взаимодействует с базой данных mySQL. Он должен работать на сервере Ubuntu. Я разрабатываю его в Intellij IDEA, и он отлично работает там.

Однако, когда я создаю файл jar и запускаю его в командной строке Ubuntu (как на сервере, так и на моем домашнем ПК с запуском ubuntu), ничего не работает.

Я просто -jar %my_jar_filename% java -jar %my_jar_filename% и получаю ошибку

"Не удалось загрузить основной класс... Class.forName(" com.mysql.jdbc.Driver ")"

Я знаю, что, поскольку java 5 (я не уверен, какая версия, я использую 8), не нужно писать ее, но если я ее не пишу, я получаю

"Не найдено подходящего драйвера"

Я искал эту проблему, и единственным решением, которое я нашел, было убедиться, что драйвер действительно существует на ПК и добавляет Class.forName("");

Это мне не помогает. Драйвер существует, потому что в программе IDE работает. Я думаю, что проблема связана с вариантами java. Я попытался добавить соединитель mysql через java -cp,

но он дал мне ту же ошибку и даже попытался скомпилировать программу в терминале из источника через javac, но также и ту же проблему. На моем компьютере разъем mysql находится в папке usr/share/java/

Сервер, на котором приложение должно работать, имеет одинаковые настройки. Что я делаю неправильно?

** SOLVED: ** Спасибо всем. Решение было довольно простым. Этот ответ помог qaru.site/questions/27682/...

  • 0
    Возможно, файл jar драйвера отсутствует в созданном вами исполняемом пакете. Проверьте это, заглянув внутрь банки.
  • 0
    это сработало для вас? stackoverflow.com/questions/2839321/...
Показать ещё 1 комментарий
Теги:

2 ответа

0

Это похоже на проблему с путём класса, у него может не быть h jar файла. Я бы предложил использовать maven и создать проект maven и создать файл jar. Maven будет заботиться о зависимостях и упаковке.

0

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

com.mysql.cj.jdbc.Driver

При чтении описания у вас может также возникнуть проблема, связанная с тем, что ваш код работает в вашей среде разработки, но не при попытке запустить его из jar/командной строки.

В таком случае,

  1. как вы создаете свою банку?
  2. развертываете ли вы все свои зависимости вместе со своей банкой?
  3. у вас есть файл MANIFEST.MF, который указывает ваш основной класс?
  • 0
    Да, я получил предупреждение, что com.mysql.jdbc.Driver устарел и использовал cj, это не помогло
  • 0
    Я создаю jar в IntelliJ IDEA, нажимая build -> artifacts

Ещё вопросы

Сообщество Overcoder
Наверх
Меню