HOWTO · Java

Java.Lang.ClassNotFoundeException: Sun.Jdbc.Odbc.JdbcOdbcDriver

Dieses Tutorial demonstriert den Fehler java.lang.classnotfoundexception: sun.jdbc.odbc.jdbcodbcdriver in Java.

Dieses Tutorial demonstriert den Fehler java.lang.ClassNotFoundException: sun.jdbc.odbc.JdbcOdbcDriver in Java.

java.lang.ClassNotFoundException: sun.jdbc.odbc.JdbcOdbcDriver in Java behoben

Wenn wir die MS Access-Datenbank mit Java verwenden, kann der Fehler java.lang.ClassNotFoundException: sun.jdbc.odbc.JdbcOdbcDriver auftreten. Dieser Fehler tritt auf, weil Java 8 oder JDK 1.8 die JDBC-ODBC-Bridge nicht unterstützt.

Wenn Sie also Java 8 oder JDK 1.8 oder die Versionen danach verwenden, wird wahrscheinlich der Fehler java.lang.ClassNotFoundException: sun.jdbc.odbc.JdbcOdbcDriver auftreten.

Es gibt zwei Lösungen, um diesen Fehler zu beheben, eine besteht darin, Java auf 7 oder JDK vor 1.8 zurückzusetzen, und die zweite Lösung besteht darin, die UCanAccess jar s zu verwenden. Beide Lösungen werden im Folgenden beschrieben.

Zurück zu Java oder JDK vor den Versionen 8 und 1.8

Um die JDBC-ODBC-Bridge zu verwenden, müssen Sie über Java 7 oder frühere Versionen verfügen, da nur diese Treiber unterstützt werden. Führen Sie die folgenden Schritte aus, um zu früheren Versionen von Java oder JDK zurückzukehren.

Verwenden von Eclipse:

  • Klicken Sie mit der rechten Maustaste auf das Projekt und gehen Sie zu Eigenschaften.
  • Gehen Sie zu Java Compiler.
  • Aktivieren Sie das Kontrollkästchen Projektspezifische Einstellungen aktivieren.
  • Wählen Sie nun unter Compiler compliance level eine JDK-Version vor 1.8 aus.
  • Klicken Sie auf Übernehmen und schließen. Das JDK wird auf die ausgewählte Version zurückgesetzt.

Mit Windows oder CMD:

  • Sie müssen die vorherige Java-Version entfernen und die zurückgesetzte Version installieren.
  • Gehen Sie zur Systemsteuerung und fügen Sie Programme hinzu oder entfernen Sie sie.
  • Entfernen Sie Java.
  • Laden Sie Java 7 oder früher von hier herunter.
  • Installieren Sie, indem Sie dem Installationsprozess folgen.

Nach dem Zurücksetzen auf frühere Java-Versionen wird der Fehler java.lang.ClassNotFoundException: sun.jdbc.odbc.JdbcOdbcDriver behoben.

Verwenden Sie UCanAccess-Jars

Die UCanAccess-Jars werden verwendet, um die Verbindung zwischen Java und der Access-Datenbank herzustellen. Befolgen Sie den nachstehenden Prozess, um UCanAccess-Jars hinzuzufügen, um den Fehler java.lang.ClassNotFoundException: sun.jdbc.odbc.JdbcOdbcDriver zu beheben.

  • Laden Sie die UCanAccess-Jars von hier herunter.
  • Fügen Sie das jar zu Ihrem Erstellungspfad hinzu.
  • Im Fall von Maven wird die folgende Abhängigkeit zur Datei pom.xml hinzugefügt.
<dependency>
    <groupId>net.sf.ucanaccess</groupId>
    <artifactId>ucanaccess</artifactId>
    <version>5.0.0</version>
</dependency>

Sobald das UCanAccess jar zum Build-Pfad hinzugefügt und die Maven-Abhängigkeit eingestellt ist, können Sie sich mit der MS Access-Datenbank verbinden; siehe Beispiel.

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();
    }
  }
}

Der obige Code funktioniert ordnungsgemäß und stellt eine Verbindung zur MS Access-Datenbank mit dem Namen Demo.accdb her. Siehe Ausgabe:

The Database is Connected successfully.

Eine andere Sache sollte hier erwähnt werden; wenn die Datenbank groß ist, müssen wir auch die Parameter Xmx und Xms erwähnen oder den Speicherparameter auf false setzen; Andernfalls wird der Fehler ausgegeben. Setzen Sie den Speicherparameter wie unten gezeigt auf false.

String Database_URL = "jdbc:ucanaccess://C:\\Users\\Sheeraz\\Databases\\Demo.accdb";memory=false";