HOWTO · Java
Java.Lang.ClassNotFoundeException: Sun.Jdbc.Odbc.JdbcOdbcDriver
Este tutorial demuestra el error java.lang.classnotfoundexception: sun.jdbc.odbc.jdbcodbcdriver en Java.
Este tutorial demuestra el error java.lang.ClassNotFoundException: sun.jdbc.odbc.JdbcOdbcDriver en Java.
Arreglar java.lang.ClassNotFoundException: sun.jdbc.odbc.JdbcOdbcDriver en Java
Cuando usamos la base de datos de MS Access con Java, puede ocurrir el error java.lang.ClassNotFoundException: sun.jdbc.odbc.JdbcOdbcDriver. Este error se debe a que Java 8 o JDK 1.8 no admiten el puente JDBC ODBC.
Entonces, si está utilizando Java 8 o JDK 1.8 o las versiones posteriores, es probable que ocurra el error java.lang.ClassNotFoundException: sun.jdbc.odbc.JdbcOdbcDriver.
Hay dos soluciones para solucionar este error, una es revertir Java a 7 o JDK anterior a 1.8, y la segunda solución es utilizar los jar UCanAccess. Ambas soluciones se describen a continuación.
Volver a Java o JDK antes de las versiones 8 y 1.8
Para usar el puente JDBC ODBC, debe tener Java 7 o versiones anteriores porque solo se admiten estos controladores. Siga los pasos a continuación para volver a las versiones anteriores de Java o JDK.
Usando Eclipse:
-
Haga clic derecho en el proyecto y vaya a
Propiedades. -
Vaya a
Compilador de Java. -
Marque la casilla
Habilitar configuración específica del proyecto. -
Ahora seleccione una versión de JDK anterior a la 1.8 desde
Nivel de cumplimiento del compilador. -
Haga clic en
Aplicar y cerrar. El JDK se revierte a la versión seleccionada.
Usando Windows o CMD:
-
Debe eliminar la versión anterior de Java e instalar la revertida.
-
Vaya al
Panel de controly agregue o elimine programas. -
Quitar Java.
-
Descargue Java 7 o anterior desde aquí.
-
Instale siguiendo el proceso de instalación.
Tras volver a versiones anteriores de Java, se solucionará el error java.lang.ClassNotFoundException: sun.jdbc.odbc.JdbcOdbcDriver.
Usar tarros UCanAccess
Los jars UCanAccess se utilizan para realizar la conexión entre Java y la base de datos de Access. Siga el proceso a continuación para agregar archivos jar UCanAccess para resolver el error java.lang.ClassNotFoundException: sun.jdbc.odbc.JdbcOdbcDriver.
-
Descargue los frascos
UCanAccessdesde aquí. -
Agregue el
jara su ruta de compilación. -
En el caso de Maven, se agregará la siguiente dependencia al archivo
pom.xml.
<dependency>
<groupId>net.sf.ucanaccess</groupId>
<artifactId>ucanaccess</artifactId>
<version>5.0.0</version>
</dependency>
Una vez que se agrega el jar UCanAccess a la ruta de compilación y se establece la dependencia de Maven, puede conectarse a la base de datos de MS Access; ver el ejemplo.
package delftstack;
import java.sql.Connection;
import java.sql.DriverManager;
public class Example {
public static void main(String args[]) {
String Database_URL = "jdbc:ucanaccess://C:\\Users\\Sheeraz\\Databases\\Demo.accdb";
try {
// making connection
Connection Database_Connection = DriverManager.getConnection(Database_URL);
if (Database_Connection != null) {
System.out.println("The Database is Connected successfully.");
Database_Connection.close();
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
El código anterior funcionará correctamente y se conectará a la base de datos de MS Access denominada Demo.accdb. Ver salida:
The Database is Connected successfully.
Otra cosa debe mencionarse aquí; si la base de datos es grande, también debemos mencionar los parámetros Xmx y Xms o establecer el parámetro de memoria en false; de lo contrario, arrojará el error. Establezca el parámetro de memoria en false, como se muestra a continuación.
String Database_URL = "jdbc:ucanaccess://C:\\Users\\Sheeraz\\Databases\\Demo.accdb";memory=false";