Я не могу загрузить драйвер JDBC для MySQL - PullRequest
5 голосов
/ 29 мая 2011

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

import java.sql.*;

public class dbTest{
   public static void main(String[] args) throws SQLException, ClassNotFoundException
   {
    Class.forName("com.mysql.jdbc.Driver"); 
   }
}

И я продолжаю получать исключение для класса, не найденного:

java.lang.ClassNotFoundException
    at edu.rice.cs.plt.reflect.PathClassLoader.findClass(PathClassLoader.java:148)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
at dbTest.main(dbTest.java:6)

Я добавилпуть к драйверу (mysql-connector-java-3.1.14-bin.jar) к моему classpath и дважды проверил, чтобы убедиться, что это правильно.Я также добавил копии jar-файла в папку ext моей установки Java на основе того, что я прочитал из этой статьи: http://www.developer.com/java/data/jdbc-and-mysql-installation-and-preparation-of-mysql.html

Я также искал сообщения других людей, у которых была эта проблема, но вседо сих пор в ответах говорилось о добавлении jar соединителя в путь к классам, что я уже сделал.

Любая помощь будет принята с благодарностью.

Ответы [ 3 ]

9 голосов
/ 02 октября 2014

В IntelliJ я решил эту проблему следующим образом:

Файл> Структура проекта> Библиотеки> +

Найдите разъем jdbc.Для меня это было на C: \ Users \ MyName.InteliJIdea13 \ config \ jdbc-drivers

9 голосов
/ 29 мая 2011

Я добавил путь к драйверу (mysql-connector-java-3.1.14-bin.jar) к моему classpath

Исключение говорит вам, что вы этого не сделалисделайте это правильно.

Как вы настраиваете CLASSPATH?Если это переменная среды, вы узнаете, что IDE и серверы приложений игнорируют ее. Не используйте его.

Также не помещайте его в каталог / ext вашего Java JDK.

Правильный способ сделать это зависит от того, как вы его используете:

  1. Если вы работаете в IDE, такой как Eclipse или IntelliJ, вам нужно добавить JAR вбиблиотека.
  2. Если вы работаете в командной оболочке, используйте параметр -p для javac.exe при компиляции и java.exe при запуске.
  3. Если вы используете его вВеб-приложение можно запустить, поместив его в каталог WEB-INF / lib вашего WAR-файла.Если вы используете движок сервлетов / JSP, такой как Tomcat 6, поместите его в каталог Tomcat / lib.
1 голос
/ 29 мая 2011

В Java есть два пути к классам. Построить путь и запустить путь. Путь сборки используется при компиляции файлов .java в файлы .class. В таком языке, как C, у вас есть этап компоновщика, который заполняет все недостающие символы, когда вы запускаете компоновщик для нескольких объектных файлов. Вот почему для .exe (windows) или других собственных двоичных файлов (linux) нет пути запуска. Java немного отличается, потому что скомпилированные определения .class загружаются jvm по мере необходимости.

Из этого вытекает, что вы должны указать jvm путь к классам во время выполнения. В командной строке вы используете java.exe, который по умолчанию выполняет поиск в нескольких местах, включая $ CLASSPATH, текущий каталог / lib и все, что вы указываете в опции -cp.

Среды IDE отличаются от командной строки тем, что они пытаются оградить вас от некоторых неприятностей, связанных с запуском java.exe и предоставлением мест, где находятся все файлы .class (что было бы обременительно в большом проекте).

В большинстве IDE есть своего рода вкладка «Run Configuration», которая позволяет указывать определенные библиотеки или места с классами, которые будут использоваться при запуске вашего приложения. Ниже описано, как задать путь выполнения в eclipse, netbeans и intellij.

http://javahowto.blogspot.com/2006/06/set-classpath-in-eclipse-and-netbeans.html

http://www.jetbrains.com/idea/webhelp/run-debug-configuration-application.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...