Здравствуйте.
Возникла проблема с установкой подключения к локальной базе данных, используя JDBC драйвер. При попытке установки соединения выдается ошибка:
java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
Запускаю я программу на Debian 8 командой: java -jar name.jar. Перепробовал уже несколько способов решения проблемы:
mysql:mysql-connector-java:5.1.41 и добавлял ее внутрь артефакта (jar файла).sudo apt-get install libmysql-java и добавлял ее в CLASSPATH export CLASSPATH=$CLASSPATH:/usr/share/java/mysql-connector-java.jar.Class-Path: mysql-connector-java.jarIDE - intellij Idea Ultimate 2017.1
ОС, на которой выполняется jar файл - Debian 8
Возможно, кто-то уже решал подобную проблему. Заранее благодарю за ответ.
UPD:
Ошибка выдается в данной строке:
Class.forName(DATABASE_DRIVER);
где DATABASE_DRIVER
public static final String DATABASE_DRIVER = "com.mysql.jdbc.Driver";
Проблема здесь вот в чем:
Если jar является executable, то при указании ключа -jar все остальные упоминания о CLASSPATH в виде -cp и проч. игнорируются. Считается, что весь CLASSPATH находится внутри jar архива. Соответственно выхода 2:
1) Вручную указывать через -cp где искать main класс и там же указывать путь на драйвер, типа:
java -cp name.jar:mysql-connector-java.jar com.somepackage.subpackage.Main
2) Запаковать внутрь name.jar драйвер - можно вручную распаковать jar драйвера и засунуть, а можно через утилиту jarjar
Сборка персонального компьютера от Artline: умный выбор для современных пользователей