web-dev-qa-db-ja.com

ClassNotFoundException com.mysql.jdbc.Driver

この質問はここで何回も尋ねたかもしれません。上記のエラーをGoogleで検索して更新した後、なぜそのエラーが発生するのか理解できません。クラスパスにmysql-connector-Java-5.1.5-binというドライバーを既に配置しました。

Java_Home\jre\lib\
Java_Home\jre\lib\ext\
Java_Home\lib

mysqlデータベースに接続するために使用しているコードは次のとおりです。

try{
Class.forName("com.mysql.jdbc.Driver");

Connection con=DriverManager.getConnection("jdbc:mysql://localhost:3306/mail","root","");

Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery("select message_body from deadletter");
String dbtime;
while (rs.next()) {
dbtime = rs.getString(1);
System.out.println(dbtime);
} 

con.close();

}
catch (SQLException e) {
        System.out.println("Connection Failed! Check output console");
        e.printStackTrace();
        }

    }

上記の例外の完全なスタックトレースは次のとおりです。

Java.lang.ClassNotFoundException: com.mysql.jdbc:Driver
    at Java.net.URLClassLoader$1.run(URLClassLoader.Java:200)
    at Java.security.AccessController.doPrivileged(Native Method)
    at Java.net.URLClassLoader.findClass(URLClassLoader.Java:307)
    at Java.lang.ClassLoader.loadClass(ClassLoader.Java:307)
    at Sun.misc.Launcher$AppClassLoader.loadClass(Launcher.Java:301)
    at Java.lang.ClassLoader.loadClass(ClassLoader.Java:252)
    at Java.lang.ClassLoader.loadClassInternal(ClassLoader.Java:320)
    at Java.lang.Class.forName0(Native Method)  
    at Java.lang.Class.forName(Class.Java:169)
    at mail.main(mail.Java:114)  

さて、私はここで何をしているのですか?

35
Dusk

最も一般的な原因は、クラスのロード元で競合があることです。たとえば、2つの場所があり、一方にJDBCドライバーがあり、もう一方にない場合は、クラスローダーが最初の場所からロードされ、最初の場所の一部のクラスがドライバーを使用する場合-ドライバーはありません。ドライバーを使用している重複したJARを探します

22
Bostone

Eclipseでこの問題に直面している場合、私は多くの異なる解決策を追ってきましたが、私のために働いたのはこれです:

  1. プロジェクトフォルダーを右クリックし、[プロパティ]を開きます。

  2. 右側のパネルから、「Java Build Path」を選択して、「Librarys」タブに移動します。

  3. [外部JARの追加]を選択して、mysqlドライバーをインポートします。

  4. 右側のパネルから、「Deployment Assembly」を選択します。

  5. [追加...]を選択し、[Java Build Path Entries]を選択して、[Next]をクリックします。

  6. リストにSQLドライバーが表示されます。それを選択して、最初にクリックします。

以上です!もう一度実行してみてください!乾杯!

29
Kenneth Key

私も同じ問題に苦労し、ついに解決策を得ました。 MySql-Connector.jarをTomcatのlibフォルダーに入れてから、webappのlibフォルダーからjarを削除してから、プロジェクトを実行します。

23
Ruthreshwar

私は同じ問題を抱えていますが、長い検索の後にこれを見つけました: http://www.herongyang.com/JDBC/MySQL-JDBC-Driver-Load-Class.html

しかし、私はいくつかの変更を加えました。ドライバーをConTest.Javaファイルと同じフォルダーに入れてコンパイルし、ConTest.classになります。

したがって、このフォルダには

ConTest.class
mysql-connector-Java-5.1.14-bin.jar

そして私はこれを書く

Java -cp .;mysql-connector-Java-5.1.14-bin.jar ConTest

この方法は、IDEを使用しない場合、Windowsではcmd、Linuxではシェルのみを使用します。

11
ismail shepl

このANSはEclipseユーザー向けです......

最初に、jdbc jarファイルがEarライブラリに追加されていることを確認します。..

「はい」の場合は、Webコンテンツ-> Web Infフォルダ-> libでチェック...

過去のlibフォルダーのjdbc jarファイル.....

5

libjre/lib、またはjre/lib/extに正確に何を入れましたか? jar mysql-connector-Java-5.1.5-bin.jarまたは他の何か(ディレクトリなど)でしたか?

ちなみに、libjre/lib、またはjre/lib/extには入れませんが、jarをクラスパスに追加する方法は他にもあります。これを行うには、CLASSPATH環境変数に明示的に追加します。または、Java-cpオプションを使用できます。しかし、これは別の話です。

3
Pascal Thivent

NetBeansを使用している場合は、次の手順に従います。

  1. 「ライブラリ」を右クリックして、「ライブラリを追加...」を選択します。
  2. 「グローバルライブラリ」のリストを下にスクロールし、「MySQL JDBC Driver」を選択して、「ライブラリの追加」をクリックします。
3

1)ここからコネクタをダウンロードします https://www.mysql.com/products/connector/

2)mysqlのJDBCドライバーを選択します

3)Platform Independent(Architecture Independent)、Zip Archiveをクリックします

4)ファイルをダウンロードして解凍します

5)(Eclipseの場合)プロジェクト->プロパティ-> Java Build Path-> Libraries(Netbeansの場合)]左バーのライブラリを右クリック-> jarの追加

6)[外部jarの追加]をクリックします

7)mysql-connector-Java-5.1.40-bin.jarを選択します

8)完了!

3
Omkar Frozen

NetBeansでは、

  1. ライブラリを右クリックして、propertiesを選択します
  2. rubタブを選択
  3. そこでmysql-connector-Java.jarを追加して適用する必要があります

NetBeanでプロジェクトを右クリックし、[ライブラリ]、[実行]タブ、ライブラリを追加して、mysqlコネクタを選択します。

1
badmus306

OK、mysql-connector-Java.jarのパスを次のパスに変更するソリューションが見つかりました:

ProjectName/WebContent/Web-inf/lib/mysql-conector-Java.jar 

そのため、再び投影するためにconectorを追加し、前のものを削除する必要があります。

1
Luillyfe

MariaDBコネクタ をダウンロードする必要があります。
その後:

  1. プロジェクトを展開します。
  2. Librariesを右クリックします。
  3. 選択する Add Jar/Folder
  4. 追加 mariadb-Java-client-2.0.2.jar今ダウンロードしたもの。
1
jaleel

mysqlコネクタjarをプロジェクトフォルダーにコピーして貼り付け、ビルドパスが確実に機能するようにします。

0
Ishaan Kothidar

彼らがEclipseで言うようにIntelliJ Doで「Eclipseでこの問題に直面している場合、私は多くの異なるソリューションを追ってきましたが、私のために働いたのはこれです:

プロジェクトフォルダーを右クリックし、[プロパティ]を開きます。

右側のパネルから、「Java Build Path」を選択して、「Librarys」タブに移動します。

[外部JARの追加]を選択して、mysqlドライバーをインポートします。

右側のパネルから、「Deployment Assembly」を選択します。

[追加...]を選択し、[Java Build Path Entries]を選択して、[Next]をクリックします。

リストにSQLドライバーが表示されます。それを選択して、最初にクリックします。

以上です!もう一度実行してみてください!乾杯!"

ここで、プロジェクト構造->ライブラリ-> +(追加)でjarファイルを追加する必要があります

0
karan patel

私のために働いた唯一のものは、MySQL Webサイトからmysql-connector-Java-5.0.8-bin.jarを直接ダウンロードすることでした。

http://dev.mysql.com/downloads/connector/j/3.1.html

次に、Eclipseを使用している場合は、このmysql-connector-Java-5.0.8-bin.jarをWEB-INF libフォルダーに貼り付けます

うまくいかない場合は、このリンクに投稿されているソリューションのいずれかを試してください: http://javarevisited.blogspot.com/2012/03/jdbc-javalangclassnotfoundexception.html

0
CommonSenseCode

OK ..私も自分のソリューションに貢献できるかもしれません。プロジェクト-properties-> Deployment Assembly ...を右クリックします。mysql-connector-Java.jarを追加して適用する必要があります。このSQLコネクタを持つWebライブラリで構成されています...これは私にとってうまくいった。

0
user3619178

Javaを1.8.0_101にアップグレードした後、同じエラーが発生しました。i。ビルドパスからmysql.jarを削除します。ii。サーバーとプロジェクトをクリーンアップします。ビルドパスに戻ります。

私のために働いた。

0
Mwangi Thiga

可能な解決策のほとんどは上記で説明されています。この問題の経験から、mysql-connector-jarをwebappモジュールの/ WEB-INF/libフォルダーに配置しましたが、うまく機能しました。

0
pradz_stack

Javahomeではなく、プロジェクトにmysql-connector jarを保持します。その結果、ローカルクラスパスにあることを確認することで、確実に見つけることができます。大きな利点は、別のマシンへのプロジェクトを増やすことができ、これを再度セットアップすることを心配する(または忘れる)必要がないことです。個人的にはバージョン管理に含めるのが好きです。

0
WillfulWizard

MySQL JDBCドライバーjarファイルをコピーして、Tomcatまたはサーバーのlibフォルダーに貼り付けます。わたしにはできる。

0
Pramit Patel