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 を修正
MS Access データベースを Java で使用すると、エラー 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 が発生する可能性があります。
このエラーを解決するには 2つの解決策があります。1つは Java を 7 または 1.8 より前の JDK に戻すことで、もう 1つは UCanAccess jar を使用することです。 両方のソリューションについて以下に説明します。
バージョン 8 および 1.8 より前の Java または JDK に戻す
JDBC ODBC ブリッジを使用するには、これらのドライバーのみがサポートされているため、Java 7 またはそれ以前のバージョンが必要です。 以下の手順に従って、以前のバージョンの Java または JDK に戻します。
Eclipse の使用:
-
プロジェクトを右クリックし、
プロパティに移動します。 -
Java コンパイラに移動します。 -
プロジェクト固有の設定を有効にするボックスをチェックします。 -
ここで、
コンパイラ準拠レベルから 1.8 より前のバージョンの JDK を選択します。 -
適用して閉じるをクリックします。 JDK が選択したバージョンに戻されます。
Windows または CMD の使用:
-
以前の Java バージョンを削除し、元に戻したものをインストールする必要があります。
-
コントロール パネルに移動し、プログラムを追加または削除します。 -
Java を削除します。
-
こちら から Java 7 以前をダウンロードします。
-
インストールプロセスに従ってインストールします。
以前のバージョンの Java に戻すと、エラー java.lang.ClassNotFoundException: sun.jdbc.odbc.JdbcOdbcDriver が解決されます。
UCanAccess Jar を使用する
UCanAccess jar は、Java と Access データベース間の接続を確立するために使用されます。 以下のプロセスに従って、UCanAccess jar を追加して java.lang.ClassNotFoundException: sun.jdbc.odbc.JdbcOdbcDriver エラーを解決します。
-
ここ から
UCanAccessjar をダウンロードします。 -
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.
ここでもう1つ言及する必要があります。 データベースが大きい場合は、Xmx および Xms パラメータについて言及するか、メモリ パラメータを false に設定する必要があります。 そうしないと、エラーがスローされます。 以下に示すように、メモリ パラメータを false に設定します。
String Database_URL = "jdbc:ucanaccess://C:\\Users\\Sheeraz\\Databases\\Demo.accdb";memory=false";