Java.lang.ClassNotFoundException, несмотря на использование переменной среды CLASSPATH
Я пытаюсь подключиться к базе данных mysql, используя java на windows7. Несмотря на добавление полного URL файла jar файла jdbcdriver в CLASSPATH, java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
бросается. Может ли кто-нибудь сказать мне, чего я здесь не хватает? Он работает, если я добавляю файл jar в библиотеку проектов, но я хочу сделать это сам CLASSPATH.
Мой classpath выглядит так:
C:\jython2.5.1\javalib\MySQL-разъем-Java-5.1.12-bin.jar
Я хочу дать понять, что это не настоящий проект, над которым я работаю. Я фактически использую Django с Jython, для чего драйвер JDBC требует доступа к базе данных. Вот почему я должен делать это только с помощью CLASSPATH.
Ответы
Ответ 1
Переменная среды CLASSPATH
только, используемая командой java.exe
, и даже тогда, когда используется без аргументов -cp
, -classpath
, -jar
. Он игнорируется с помощью IDE, таких как Eclipse, Netbeans и IDEA.
Эта переменная среды в реальном мире также считается плохой практикой, поскольку она нарушает переносимость. То есть программа X будет успешно работать, пока программа Y не будет работать без изменения CLASSPATH
. Это только "полезно" для Sun Oracle, чтобы предотвратить, что стартеры устали от того, чтобы снова вводить один и тот же путь к классам в аргументах -cp
или -classpath
при выполнении обучающих программ по Java. В реальном мире предпочтительными являются файлы пакета/оболочки, где указывается только целая команда с аргументом -cp
/-classpath
.
В вашем случае вы используете IDE. Путь к классам называется "Путь сборки". В простых Java-проектах он представляет собой classpath и runtime classpath. Вы можете настроить его в свойствах проекта. Вы можете добавить полную папку, вы можете добавить отдельные/внешние JAR файлы, вы можете связать проекты и т.д. Используйте его. Забудьте об использовании переменной среды CLASSPATH
. Это была ошибка Sun Oracle. Они думали, что убеждают стартеров, но это оказалось более запутанным для начинающих, поскольку они неверно интерпретируют эту переменную среды как classpath.
См. также:
Ответ 2
Что, наконец, помогло мне в том, чтобы скопировать mysql-connector-java-5.1.15-bin.jar в \jre\lib и\jre\lib\ext оба (!), хотя я сделал все циклы классов Java предлагает:) Среда была чистой записной книжкой/командной строкой, хотя.
Ответ 3
Что со мной работало с помощью Netbeans:
Запустить > Установить конфигурацию проектa > Настроить.
В разделе "Библиотеки" > "Добавить библиотеку". Добавлен драйвер JDBC MySQL (я предполагаю, что он появился в списке, потому что я скопировал файл jar в папку jre\lib\ext.
И он работал без проблем.
Я попытался установить classpath, но это не сработало. Я использую Netbeans 7.0
Ответ 4
У меня также была эта проблема раньше, но после я добавляю/добавляет mysql-connector-java-5.1.34-bin.jar(скачайте его из здесь) в папку apache-tomcat-8.0.15\lib, а затем запустить мой проект, это действительно сработало.
Примечание. Даже после добавления файла jar ошибка сохраняется, затем перезагрузите сервер Tomcat и снова запустите проект.
Ответ 5
просто сделайте правый щелчок по вашему проекту в свойствах "Netbeans", затем щелкните "библиотеки", затем нажмите "добавить библиотеку...", затем выберите "MySQL JDBC Driver" и нажмите кнопку "добавить библиотеку", затем на кнопке "ОК"
Ответ 6
- Открыть Netbeans IDE
- Щелкните правой кнопкой мыши свой проект.
- Выберите "Свойства".
- В левой части нажмите "Библиотеки".
- В разделе "Компиляция" нажмите кнопку "Добавить Jar/Folder".
- Выберите загруженный файл mysql-connector-java-5.1.25-bin.jar(Загрузить Connector/J из dev.mysql. ком)
- Нажмите "ОК"
- Запустите снова... Его работа.
Ответ 7
Если вы используете maven, добавьте зависимость в pom.xml
, чтобы решить проблему.
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.36</version>
</dependency>
Ответ 8
В NetBeans IDE просто проверьте свойства проекта, на котором вы работаете, в окне свойств перейдите в тег "library", в диалоговом окне просто добавьте файл mysql-connector-java - **. jar.
Ответ 9
У меня была такая же проблема в Netbeans. Поскольку я использовал пул соединений tomcat, как это определено в context.xml, мне нужно было добавить jdbc-jar в проект (Properties- > Libraries) и в папку lib/на моем сервере Tomcat, чтобы его можно было увидеть при запуске.