ошибка выполнения: java.яз..ClassNotFoundException: com.для MySQL.интерфейс jdbc.Водитель
Я новичок в mysql и jdbc, и я получаю ошибку в этом названии. Я искал весь день и не могу найти решение, которое работает для меня.
Что я пробовал: uninstall / reinstall mysql, copy paste mysql-connector-java-5.1.25-bin.jar и ojdbc7.кувшин в том же месте, что и сам .файл class я пытаюсь запустить, перестроил программу в другой каталог, и, вероятно, еще несколько вещей.
Я использую notepad++ для кодирования и командной строки windows для компиляции и бежать. он прекрасно компилируется, но я пытаюсь работать с
C:Projectsbin > java-cp . Клиентская база
Вывод:
Java.яз..ClassnNotFoundException: com.для MySQL.интерфейс jdbc.Драйвер
В java. net. URLClassloader$1. run(URLClassLoader. java: 336)
в java. net. URLClassLoader$1. run (URLClassLoader. java: 355)
на Яве.безопасность.AccessController.doPrivileged (Native Method)
около java. net. URLClassLoader. findClass(URLClassLoader. java: 354)
на Яве.яз..загрузчик классов.loadClass (загрузчик классов.java: 432)
в Sun.разное.Launcher$AppClassLoader.loadClass (пусковая установка.java: 308)
на Яве.яз..загрузчик классов.loadClass (загрузчик классов.java: 356)
на Яве.яз..Класс.forName0 (Native Method)
на Яве.яз..Класс.forName (класс.java: 188)
в клиентской базе.main (клиентская база.java: 21)
До свидания.
// import packages
import java.sql.*;
// create class ClientBase
public class ClientBase{
// JDBC driver name and database URL
static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";
static final String DB_URL = "jdbc:mysql://localhost/CLIENTBASE";
// Database credentials
static final String USER = "root";
static final String PASS = "";
// Begin method main
public static void main(String[] args) {
Connection conn = null;
Statement stmt = null;
try{
// register JDBC driver
Class.forName("com.mysql.jdbc.Driver");
// Open connection
System.out.println("Connecting to database...");
conn = DriverManager.getConnection(DB_URL, USER, PASS);
// Execute a query
System.out.println("Creating statement...");
stmt = conn.createStatement();
String sql;
sql = "SELECT id, name, address, address 2, city, phone, state, zip, fax FROM CLIENTBASE";
ResultSet rs = stmt.executeQuery(sql);
// Extract data from result set
while(rs.next()){
// Retrieve by column name
int id = rs.getInt("id");
String name = rs.getString("name");
String address = rs.getString("address");
String address2 = rs.getString("address2");
String city = rs.getString("city");
String phone = rs.getString("phone");
String state = rs.getString("state");
String zip = rs.getString("zip");
String fax = rs.getString("fax");
// Display values
System.out.print("ID: " + id);
System.out.print(" Name: " + name);
System.out.println("Address:" + address);
System.out.println(address2);
System.out.print("City:" + city);
System.out.print(" State: " + state);
System.out.println(" Zip: " + zip);
System.out.print("Phone: " + phone);
System.out.println(" Fax: " + fax);
} // end while
// clean up
rs.close();
stmt.close();
conn.close();
}catch(SQLException se){
// Handle errors for JDBC
se.printStackTrace();
}catch(Exception e){
// Handle errors for Class.forName
e.printStackTrace();
}finally{
// finally block used to close resources
try{
if(stmt!=null)
stmt.close();
}catch(SQLException se){
se.printStackTrace();
} // end finally
} // end try
System.out.println("Goodbye.");
} // End method main
} // end class ClientBase
Я должен также скажите, что я собираюсь покинуть онлайн-учебник по этому коду. Это не совсем так, как у них, поскольку я решил сделать что-то немного отличное от их, но в целом это то же самое. Я не думаю, что это проблема кода, хотя из того, что ошибка.
Любая помощь будет оценена! Я схожу с ума!
6 ответов:
Необходимо добавить библиотеку соединителей в путь к классу среды выполнения:
java -cp .;mysql-connector-java-5.1.25-bin.jar ClientBase
В моем примере используется Windows classpath separator
";"
, на других системах это может быть по-другому (":"
на Linux/Mac). Он также предполагает, чтоmysql-connector-java-5.1.25-bin.jar
находится в той же папке. Если это не так, то вместо обычного имени укажите путь к библиотеке.
ClientBase
обозначает здесь имя файла класса Javac:\>javac Test.java c:\>java -cp .;F:\CK\JavaTest\JDBCTutorial\mysql-connector-java-5.1.18-bin Test
Если вы используете netbeans, выполните следующие действия 1.Открытая среда NetBeans 2.Щелкните правой кнопкой мыши проект. 3.выбрать Properties. 4.С левой стороны нажмите кнопку библиотеки. 5.На вкладке "компиляция"нажмите кнопку Добавить банку / папку. 6.Выберите загруженный " mysql-connector-java-5.1.25-bin.jar " файл (скачать Connector / J из dev.mysql.com) 7.нажимать OK бежать снова... Своя работа.
Добавьте
mysql.connector-java-x.x.x-bin.jar
в папку библиотеки. Не нужно ничего импортировать. Хорошего вам дня.
I was also get same problem :-
Как я решил для системы Linux .1.) Загрузить файл mysql-connector-java-5.1.18-bin.jar из данной ссылки или другой.
2.) затем вставьте его в ту же папку или каталог вашего класса или файла (на котором вы хотите, чтобы соединение присутствовало)
3.) Теперь используйте следующую команду в командной строке linux.
java -cp .:mysql-connector-java-5.1.18-bin.jar YourFileName
..Thats все, что вам нужно сделать... :)
Что вы импортировали ? Из документации: http://dev.mysql.com/doc/connector-j/en/connector-j-usagenotes-connect-drivermanager.html
import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; // Notice, do not import com.mysql.jdbc.* // or you will have problems!
Комментарий:
Почему вы используете notepad++ ? установите IDE (Eclipse / Netbeans / IntelliJ) - вам будет намного проще найти такие проблемы (например, не включенные jars)
Если вы используете
Swing
, вы должны добавить внешнюю банку my-sql-connectИначе, если вы используете
jsp servlet
, Вы должны добавить внешний jar и скопировать этот Jar вWEB_INF/lib папку проекта