Java.lang.classnotfoundexception: com.mysql.jdbc.driver

De ChuWiki


Obtenemos una excepción java.lang.ClassNotFoundException: com.mysql.jdbc.Driver. ¿Cómo la arreglamos?

Siempre que obtenemos una excepción Java.lang.ClassNotFoundException es debido a que java no encuentra una clase que estamos utilzando en nuestro programa. En este caso concreto, la clase que no encuentra es com.mysql.jdbc.Driver". Esta clase suele ser necesaria cuando queremos acceder con Java a una base de datos MySQL.

Esa clase es el driver de conexión de Java con MySQL. Las versiones más modernas están en el jar mysql-connector-j.jar. Veriones anteriores están en el jar mysql-connector-java.jar. Las primeras puedes descargarlas de https://mvnrepository.com/artifact/com.mysql/mysql-connector-j . Las versiones anteriores en https://mvnrepository.com/artifact/mysql/mysql-connector-java . Es importante que elijas la versión adecuada a tu motor de MySQL y versión de Java.

Si usas Maven o Gradle, simplemente tendrías que añadir la dependencia adecuada en tu fichero pom.xml o build.gradle. Si no, bajarte el fichero jar y decirle a tu IDE favorito que lo incluya como parte del proyecto.

Si ya tienes tu programa compilado como un tu-programa.jar y al ejecutarlo desde línea de comandos te salta esta excepción, debes añadir el jar con el conector de MySQL en el classpath de ejecución, como se indica en el enlace. Como idea rápida, la ejecución desde línea de comandos sería

java -cp path\tu-programa.jar;otro-path\mysql-connector-j.jar paquete.de.tu.main.ClaseConTuMain

Puedes meter esto en un fichero .bat para que sea más cómodo.