java.lang.ClassNotFoundException: com.mysql.jdbc.Driver при выполнении JAR

Я пытаюсь подключиться к моему локальному серверу MySQL с помощью следующего кода:

dbURL = "jdbc:mysql://localhost:3306:/" + dbname;
try{
    Class.forName("com.mysql.jdbc.Driver");
    try{
        con = DriverManager.getConnection(dbURL, dbuser, dbpass);
    } catch (SQLException ex){
        System.out.println("ERROR: Could not connection to SQL DB");
        con = null;
    }
} catch (ClassNotFoundException e){
    System.out.println("Error: ");
    e.printStackTrace();
}

Я тогда получаю

java.lang.ClassNotFoundException: com.mysql.jdbc.Driver

Я понимаю, что Java не может найти подходящий драйвер для подключения среды Java к базе данных MySQL. Это компилируется в системе Windows 7 и переносится в систему Ubuntu 11.04.

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

java -cp /usr/share/java/mysql-connector-java.jar program.jar

Это не сработало, когда я попробовал.

3 ответа

Решение

В случае JAR, -cp а также -classpath аргументы и тому %CLASSPATH% переменные среды игнорируются. Вместо этого путь к классу должен быть указан в Class-Path Вступление в JAR собственной /META-INF/MANIFEST.MF файл. Это может быть путь относительно самого JAR. Например, в той же папке или в /lib вложенная папка.

В приведенном ниже примере предполагается, что драйвер находится в той же папке, что и JAR.

Class-Path: mysql-connector-java.jar

(убедитесь, что MANIFEST.MF файл имеет пустую строку в конце)

Смотрите также:

Установите MySQL соединитель для JAVA

sudo apt-get install libmysql-java

Установить путь к классу

export CLASSPATH=$CLASSPATH:/usr/share/java/mysql-connector-java.jar

Источник: http://marksman.wordpress.com/2009/03/01/setting-up-mysqljdbc-driver-on-ubuntu/

Независимо от того, где он скомпилирован, он будет работать в той же реализации JVM.

Все, что вам нужно сделать, это правильно включить соединитель драйвера JDBC в ваш путь к классу. Попробуйте поместить mysql-connector-java.jar в тот же каталог, что и ваша программа.

Если вы разархивируете этот файл jar, будет ли он содержать com/mysql/jdbc/Driver.class? Если нет, попробуйте загрузить реализацию драйвера jdbc с веб-сайта mysql.

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