java.lang.ClassNotFoundException, несмотря на использование переменной среды CLASSPATH

Я пытаюсь подключиться к базе данных MySQL, используя Java на Windows7. Несмотря на добавление полного URL-адреса jar-файла jdbcdriver в CLASSPATH, создается исключение java.lang.ClassNotFoundException: com.mysql.jdbc.Driver. Может ли кто-нибудь сказать мне, что мне здесь не хватает? Это работает, если я добавляю jar-файл в библиотеку проекта, но я хочу сделать это самим CLASSPATH. Мой путь к классу выглядит так: C:\jython2.5.1\javalib\mysql-connector-java-5.1.12-bin.jar

Я хочу прояснить, что это не тот проект, над которым я работаю. На самом деле я использую Django с Jython, для которого требуется драйвер JDBC для доступа к базе данных. Вот почему я должен делать это, используя только CLASSPATH.

9 ответов

Решение

CLASSPATH Переменная окружения используется только java.exeкоманда и даже тогда только при использованиибез какого-либо из -cp,-classpath, -jarаргументы. Он игнорируется такими средами разработки, как Eclipse, Netbeans и IDEA.

Эта переменная среды в реальном мире также считается плохой практикой, поскольку она нарушает переносимость. Т.е. программа X будет работать успешно, в то время как программа Y не будет работать без измененияCLASSPATH,Sun Oracle только "полезно" предотвращать то, что начинающие устали снова и снова набирать один и тот же путь к классам. -cpили же-classpath аргументы при следовании учебникам Java. В реальном мире предпочтительны командные файлы / файлы оболочки, где только вся команда с -cp / -classpath аргумент указан.

В вашем случае вы используете IDE. Путь к классам там называется "Путь сборки". В простых Java-проектах он представляеткак путь компиляции, так и время выполнения. Вы можете настроить его в свойствах проекта. Вы можете добавить полную папку, вы можете добавить отдельные / внешние файлы JAR, вы можете связать проекты, и так далее. Используйте это. Забудьте об использовании CLASSPATHпеременная окружения. Это была ошибка ОракулаСолнца. Они думали убедить начинающих, но в итоге они стали еще более запутанными, поскольку неправильно интерпретируют эту переменную среды как путь к классу.

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

В конце концов мне помогло скопировать mysql-connector-java-5.1.15-bin.jar в \jre\lib и в \jre\lib\ext обоих (!), Хотя я делал все предложения Java для цирка классов:) Среда была чистым блокнотом / командной строкой.

Что работало со мной, используя Netbeans: Run > Set Configuration Configuration > Customize. В разделе Библиотеки> Добавить библиотеку. Добавлен драйвер JDBC для MySQL (я предполагаю, что он появился в списке, потому что я скопировал файл jar в папку jre\lib\ext. И он работал без проблем.

Я попытался установить classpath, но это не сработало. Я использую Netbeans 7.0

Просто щелкните правой кнопкой мыши ваш проект в "Netbeans", выберите свойства, затем нажмите "библиотеки", затем нажмите "добавить библиотеку...", затем выберите "MySQL JDBC Driver" и нажмите кнопку "добавить библиотеку", затем "ОК". кнопка

У меня также была эта проблема раньше, но после того, как я поместил / добавил mysql-connector-java-5.1.34-bin.jar (загрузите его отсюда) в папку apache-tomcat-8.0.15\lib, а затем запустил свой проект Это действительно сработало.

Примечание. Даже после добавления файла JAR ошибка сохраняется, затем перезапустите сервер Tomcat и снова запустите проект.

Если вы используете Maven, добавьте зависимость к pom.xml должен решить проблему.

<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>5.1.36</version>
</dependency>
  1. Открытая среда Netbeans
  2. Щелкните правой кнопкой мыши ваш проект.
  3. Выберите Свойства.
  4. С левой стороны нажмите Библиотеки.
  5. На вкладке "Компиляция" нажмите кнопку "Добавить Jar/ папку".
  6. Выберите загруженный файл "mysql-connector-java-5.1.25-bin.jar" ( скачать Connector/J с dev.mysql.com)
  7. Нажмите ОК
  8. Беги снова... Его работа.

В IDE Netbeans просто проверьте свойства Project, над которым вы работаете, в окне свойств перейдите к тегу 'library', в окне diolog просто добавьте ваш файл mysql-connector-java-**.jar.

У меня была такая же проблема в Netbeans. Поскольку я использовал пул соединений Tomcat, как определено в context.xml, мне нужно было добавить jdbc jar как в проект (Properties->Libraries), так и в папку lib/ на моем сервере Tomcat, чтобы его можно было увидеть при запуске.

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