HOWTO · Java

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

이 자습서는 Java의 java.lang.classnotfoundexception: sun.jdbc.odbc.jdbcodbcdriver 오류를 보여줍니다.

이 페이지의 내용

이 자습서는 Java의 java.lang.ClassNotFoundException: sun.jdbc.odbc.JdbcOdbcDriver 오류를 보여줍니다.

Java에서 java.lang.ClassNotFoundException: sun.jdbc.odbc.JdbcOdbcDriver 수정

Java와 함께 MS Access 데이터베이스를 사용하는 경우 java.lang.ClassNotFoundException: sun.jdbc.odbc.JdbcOdbcDriver 오류가 발생할 수 있습니다. 이 오류는 Java 8 또는 JDK 1.8이 JDBC ODBC 브리지를 지원하지 않기 때문에 발생합니다.

따라서 Java 8 또는 JDK 1.8 또는 그 이후 버전을 사용하는 경우 java.lang.ClassNotFoundException: sun.jdbc.odbc.JdbcOdbcDriver 오류가 발생할 가능성이 있습니다.

이 오류를 해결하기 위한 두 가지 솔루션이 있습니다. 하나는 Java를 7로 되돌리거나 1.8 이전의 JDK로 되돌리는 것이고 두 번째 솔루션은 UCanAccess jar를 사용하는 것입니다. 두 솔루션 모두 아래에 설명되어 있습니다.

8 및 1.8 버전 이전의 Java 또는 JDK로 되돌리기

JDBC ODBC 브리지를 사용하려면 이러한 드라이버만 지원되므로 Java 7 또는 이전 버전이 있어야 합니다. 이전 버전의 Java 또는 JDK로 되돌리려면 아래 단계를 따르십시오.

이클립스 사용:

  • 프로젝트를 마우스 오른쪽 버튼으로 클릭하고 속성으로 이동합니다.
  • 자바 컴파일러로 이동합니다.
  • 프로젝트별 설정 활성화 상자를 선택합니다.
  • 이제 컴파일러 준수 수준에서 1.8 이전의 JDK 버전을 선택합니다.
  • 적용 후 닫기를 클릭합니다. JDK가 선택한 버전으로 되돌아갑니다.

Windows 또는 CMD 사용:

  • 이전 Java 버전을 제거하고 되돌린 버전을 설치해야 합니다.
  • 제어판으로 이동하여 프로그램을 추가하거나 제거합니다.
  • 자바를 제거합니다.
  • 여기에서 Java 7 또는 이전 버전을 다운로드합니다.
  • 설치 프로세스에 따라 설치하십시오.

이전 버전의 Java로 되돌린 후 java.lang.ClassNotFoundException: sun.jdbc.odbc.JdbcOdbcDriver 오류가 해결됩니다.

UCanAccess 항아리 사용

UCanAccess jar는 Java와 Access 데이터베이스를 연결하는 데 사용됩니다. 아래 프로세스에 따라 UCanAccess jar를 추가하여 java.lang.ClassNotFoundException: sun.jdbc.odbc.JdbcOdbcDriver 오류를 해결하십시오.

  • 여기에서 UCanAccess jar를 다운로드합니다.
  • 빌드 경로에 jar을 추가합니다.
  • Maven의 경우 pom.xml 파일에 다음과 같은 종속 항목이 추가됩니다.
<dependency>
    <groupId>net.sf.ucanaccess</groupId>
    <artifactId>ucanaccess</artifactId>
    <version>5.0.0</version>
</dependency>

UCanAccess jar가 빌드 경로에 추가되고 Maven 종속성이 설정되면 MS Access 데이터베이스에 연결할 수 있습니다. 예를 참조하십시오.

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

위의 코드는 제대로 작동하고 Demo.accdb라는 MS Access 데이터베이스에 연결됩니다. 출력 참조:

The Database is Connected successfully.

여기서 또 한 가지를 언급해야 합니다. 데이터베이스가 크면 XmxXms 매개변수를 언급하거나 메모리 매개변수를 false로 설정해야 합니다. 그렇지 않으면 오류가 발생합니다. 아래와 같이 메모리 매개변수를 false로 설정합니다.

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