java - batch - ClassNotFoundException com.mysql.jdbc.Driver
catch sqlexception java (21)
Esta pregunta podría haber preguntado aquí varias veces. Después de hacer alguna búsqueda en google por el error anterior y hacer alguna actualización, no puedo entender por qué sigo recibiendo ese error. Ya puse mi controlador-- mysql-connector-java-5.1.5-bin en el classpath:
Java_Home/jre/lib/
Java_Home/jre/lib/ext/
Java_Home/lib
y el código que estoy usando para conectarme a la base de datos mysql es:
try{
Class.forName("com.mysql.jdbc.Driver");
Connection con=DriverManager.getConnection("jdbc:mysql://localhost:3306/mail","root","");
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery("select message_body from deadletter");
String dbtime;
while (rs.next()) {
dbtime = rs.getString(1);
System.out.println(dbtime);
}
con.close();
}
catch (SQLException e) {
System.out.println("Connection Failed! Check output console");
e.printStackTrace();
}
}
y el stacktrace completo de la excepción anterior es:
java.lang.ClassNotFoundException: com.mysql.jdbc:Driver
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:307)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:169)
at mail.main(mail.java:114)
Ahora, ¿qué está mal que estoy haciendo aquí?
¿Qué pones exactamente en lib
, jre/lib
o jre/lib/ext
? ¿Era el contenedor mysql-connector-java-5.1.5-bin.jar
u otra cosa (como un directorio)?
Por cierto, no lo pondría en lib
, jre/lib
o jre/lib/ext
, hay otras maneras de agregar un jar al classpath. Puede hacerlo agregando explícitamente la variable de entorno CLASSPATH. O puede usar la opción -cp
de java
. Pero esta es otra historia.
1) Descargar el conector desde aquí https://www.mysql.com/products/connector/
2) Seleccione el controlador JDBC para mysql
3) haga clic en Plataforma Independiente (Arquitectura Independiente), Archivo ZIP
4) Descarga el archivo y descomprímelo
5) (Para Eclipse) Haga clic en Proyecto-> Propiedades-> Ruta de creación de Java-> Bibliotecas (para Netbeans) haga clic con el botón secundario en bibliotecas en la barra izquierda-> agregar tarro
6) Haga clic en agregar jar externo
7) seleccione mysql-connector-java-5.1.40-bin.jar
8) ¡Hecho!
Deberías descargar el conector MariaDB .
Entonces:
- Expande tu proyecto.
- Haga clic derecho en
Libraries
. - Seleccione
Add Jar/Folder
. - Agregue
mariadb-java-client-2.0.2.jar
que acaba de descargar.
En IntelliJ Do, como dicen en eclipse "Si se enfrenta a este problema con Eclipse, he seguido muchas soluciones diferentes, pero la que funcionó para mí es la siguiente:
Haga clic derecho en la carpeta de su proyecto y abra Propiedades.
Desde el panel derecho, seleccione Java Build Path y luego vaya a la pestaña Bibliotecas.
Seleccione Agregar JAR externos para importar el controlador mysql.
En el panel derecho, selecciona Montaje de implementación.
Seleccione Agregar ..., luego seleccione Entradas de ruta de compilación Java y haga clic en Siguiente.
Debería ver el controlador sql en la lista. Seleccione y haga clic primero.
¡Y eso es! Intenta ejecutarlo de nuevo! ¡Aclamaciones!"
Aquí tenemos que agregar el archivo jar en Estructura del proyecto -> Bibliotecas -> + (agregar)
En NetBeans,
- haga clic derecho en las bibliotecas, seleccione
properties
- seleccionar la pestaña
rub
- allí debes agregar el
mysql-connector-java.jar
y aplicar
En netbean Haga clic derecho en su proyecto, luego haga clic en Bibliotecas, luego en la pestaña Ejecutar, agregue la biblioteca, luego seleccione el conector mysql
Experimenté el mismo error después de actualizar mi Java a 1.8.0_101. Prueba esto: i. Elimina mysql.jar de tu ruta de compilación. ii. Limpiar el servidor y el proyecto iii. Agregue el archivo jar a la ruta de compilación.
Trabajó para mi.
Guardo el contenedor mysql-connector con mi proyecto en lugar de hacerlo en Javahome. Como resultado, puede estar seguro de que se puede encontrar asegurándose de que esté en el classpath local. Un gran beneficio es que usted puede más el proyecto a otra máquina y no tener que preocuparse (u olvidar) de configurarlo de nuevo. Personalmente me gusta incluirlo en el control de versiones.
La causa más común es que tiene algún conflicto sobre dónde se cargan sus clases. Por ejemplo, si tiene 2 ubicaciones y una tiene controladores JDBC y la otra no, entonces si su cargador de clases se carga desde la 1ra ubicación y alguna clase de la 1ra ubicación quiere usar el controlador, el controlador no está allí. Así que busque los JAR duplicados que están usando su controlador
La mayor parte de la posible solución se ha cubierto anteriormente. Desde mi experiencia con este tema, coloqué el mysql-connector-jar en la carpeta / WEB-INF / lib del módulo webapp y funcionó bien para mí.
Lo único que funcionó para mí fue descargar mysql-connector-java-5.0.8-bin.jar directamente desde el sitio web de MySQL:
http://dev.mysql.com/downloads/connector/j/3.1.html
Luego, si está usando Eclipse, pegue este mysql-connector-java-5.0.8-bin.jar en la carpeta lib de WEB-INF
Si no funciona, intente con cualquiera de las soluciones publicadas en este enlace: http://javarevisited.blogspot.com/2012/03/jdbc-javalangclassnotfoundexception.html
Ok, encuentro solución cambiando la ruta de mysql-conector-java.jar a la siguiente ruta:
ProjectName/WebContent/Web-inf/lib/mysql-conector-java.jar
Entonces necesita agregar el conector para proyectar nuevamente y eliminar el anterior.
Ok..Puede que también puedo contribuir con mi solución .. Haz clic derecho en project -properties -> Despliegue ensamblado ... allí necesitas agregar el mysql-connector-java.jar y aplicarlo ... lo que hace que tu pin configurado con web-Libraries que tiene este conector sql ... Esto funcionó para mí .. Espero que esto funcione para ustedes también
Si enfrentas este problema con Eclipse, he seguido muchas soluciones diferentes, pero la que funcionó para mí es la siguiente:
Haga clic derecho en la carpeta de su proyecto y abra Propiedades.
Desde el panel derecho, seleccione Java Build Path y luego vaya a la pestaña Bibliotecas.
Seleccione Agregar JAR externos para importar el controlador mysql.
En el panel derecho, selecciona Montaje de implementación.
Seleccione Agregar ..., luego seleccione Entradas de ruta de compilación Java y haga clic en Siguiente.
Debería ver el controlador sql en la lista. Seleccione y haga clic primero.
¡Y eso es! Intenta ejecutarlo de nuevo! ¡Aclamaciones!
Si está utilizando NetBeans, siga los siguientes pasos:
- Haga clic derecho en ''Bibliotecas'' y seleccione ''Agregar biblioteca ...''
- Desplácese hacia abajo en la lista de ''Bibliotecas globales'' y seleccione ''Controlador JDBC de MySQL'' y haga clic en ''Agregar biblioteca''.
Simplemente copie el archivo jar de la unidad JDBC de MySQL y péguelo en Tomcat o en la carpeta lib del servidor. Esto funciona para mi.
Tengo el mismo problema, pero lo encontré después de una larga búsqueda: http://www.herongyang.com/JDBC/MySQL-JDBC-Driver-Load-Class.html
Pero hice algunos cambios. Puse el controlador en la misma carpeta que mi archivo ConTest.java
y lo ConTest.class
, lo que dio como resultado ConTest.class
.
Entonces, en esta carpeta,
ConTest.class
mysql-connector-java-5.1.14-bin.jar
y escribo esto
java -cp .;mysql-connector-java-5.1.14-bin.jar ConTest
De esta forma si no usas ningún IDE, solo tienes que usar cmd en windows o shell en linux.
Yo también luché con el mismo problema y finalmente obtuve la solución para ello. Simplemente copie MySql-Connector.jar
en la carpeta lib
de Tomcat, y luego retire el archivo jar de la carpeta lib
de la aplicación web y luego, ejecute el proyecto.
esta ans es para usuario de eclipse ......
Primero, compruebe que el archivo jdbc jar se agrega en las bibliotecas de Ear ....
en caso afirmativo, compruebe ... en contenido web-> carpeta web Inf-> lib
y pasado aquí jdbc archivo jar en la carpeta lib .....
simplemente copie y pegue el contenedor mysqlconnector en la carpeta del proyecto y luego compile la ruta, definitivamente funcionará.
velar por que el argumento de la Clase. El método forName es exactamente "com. mysql. jdbc. Driver". En caso afirmativo, asegúrese de que el conector mysql esté presente en la carpeta lib del proyecto. Si es así, asegúrese de que el mismo conector mysql. archivo jar está en la variable ClassPath (variable de sistema) ..