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>
- Открытая среда Netbeans
- Щелкните правой кнопкой мыши ваш проект.
- Выберите Свойства.
- С левой стороны нажмите Библиотеки.
- На вкладке "Компиляция" нажмите кнопку "Добавить Jar/ папку".
- Выберите загруженный файл "mysql-connector-java-5.1.25-bin.jar" ( скачать Connector/J с dev.mysql.com)
- Нажмите ОК
- Беги снова... Его работа.
В IDE Netbeans просто проверьте свойства Project, над которым вы работаете, в окне свойств перейдите к тегу 'library', в окне diolog просто добавьте ваш файл mysql-connector-java-**.jar.
У меня была такая же проблема в Netbeans. Поскольку я использовал пул соединений Tomcat, как определено в context.xml, мне нужно было добавить jdbc jar как в проект (Properties->Libraries), так и в папку lib/ на моем сервере Tomcat, чтобы его можно было увидеть при запуске.