Java.Lang.ClassNotFoundeException: Sun.Jdbc.Odbc.JdbcOdbcDriver
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 control
y 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
UCanAccess
desde aquí. -
Agregue el
jar
a 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";
Sheeraz is a Doctorate fellow in Computer Science at Northwestern Polytechnical University, Xian, China. He has 7 years of Software Development experience in AI, Web, Database, and Desktop technologies. He writes tutorials in Java, PHP, Python, GoLang, R, etc., to help beginners learn the field of Computer Science.
LinkedIn FacebookArtículo relacionado - Java Exception
- Arreglar Java.Net.SocketException: error de tubería rota en Java
- Clase de excepción Java Throwable VS
- Comprender la excepción de tiempo de ejecución en Java
- Corrija la excepción Java.Net.BindException: la dirección ya está en uso: Bind
- El proceso de Java Gateway se cerró antes de enviar su número de puerto
- Excepción de entrada no válida en Java