この質問はここで何回も尋ねたかもしれません。上記のエラーを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)
さて、私はここで何をしているのですか?
最も一般的な原因は、クラスのロード元で競合があることです。たとえば、2つの場所があり、一方にJDBCドライバーがあり、もう一方にない場合は、クラスローダーが最初の場所からロードされ、最初の場所の一部のクラスがドライバーを使用する場合-ドライバーはありません。ドライバーを使用している重複したJARを探します
Eclipseでこの問題に直面している場合、私は多くの異なる解決策を追ってきましたが、私のために働いたのはこれです:
プロジェクトフォルダーを右クリックし、[プロパティ]を開きます。
右側のパネルから、「Java Build Path」を選択して、「Librarys」タブに移動します。
[外部JARの追加]を選択して、mysqlドライバーをインポートします。
右側のパネルから、「Deployment Assembly」を選択します。
[追加...]を選択し、[Java Build Path Entries]を選択して、[Next]をクリックします。
リストにSQLドライバーが表示されます。それを選択して、最初にクリックします。
以上です!もう一度実行してみてください!乾杯!
私も同じ問題に苦労し、ついに解決策を得ました。 MySql-Connector.jar
をTomcatのlib
フォルダーに入れてから、webappのlib
フォルダーからjarを削除してから、プロジェクトを実行します。
私は同じ問題を抱えていますが、長い検索の後にこれを見つけました: 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ではシェルのみを使用します。
このANSはEclipseユーザー向けです......
最初に、jdbc jarファイルがEarライブラリに追加されていることを確認します。..
「はい」の場合は、Webコンテンツ-> Web Infフォルダ-> libでチェック...
過去のlibフォルダーのjdbc jarファイル.....
lib
、jre/lib
、またはjre/lib/ext
に正確に何を入れましたか? jar mysql-connector-Java-5.1.5-bin.jar
または他の何か(ディレクトリなど)でしたか?
ちなみに、lib
、jre/lib
、またはjre/lib/ext
には入れませんが、jarをクラスパスに追加する方法は他にもあります。これを行うには、CLASSPATH環境変数に明示的に追加します。または、Java
の-cp
オプションを使用できます。しかし、これは別の話です。
NetBeansを使用している場合は、次の手順に従います。
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)完了!
NetBeansでは、
properties
を選択しますrub
タブを選択mysql-connector-Java.jar
を追加して適用する必要がありますNetBeanでプロジェクトを右クリックし、[ライブラリ]、[実行]タブ、ライブラリを追加して、mysqlコネクタを選択します。
OK、mysql-connector-Java.jarのパスを次のパスに変更するソリューションが見つかりました:
ProjectName/WebContent/Web-inf/lib/mysql-conector-Java.jar
そのため、再び投影するためにconectorを追加し、前のものを削除する必要があります。
MariaDBコネクタ をダウンロードする必要があります。
その後:
Libraries
を右クリックします。Add Jar/Folder
。mariadb-Java-client-2.0.2.jar
今ダウンロードしたもの。mysqlコネクタjarをプロジェクトフォルダーにコピーして貼り付け、ビルドパスが確実に機能するようにします。
彼らがEclipseで言うようにIntelliJ Doで「Eclipseでこの問題に直面している場合、私は多くの異なるソリューションを追ってきましたが、私のために働いたのはこれです:
プロジェクトフォルダーを右クリックし、[プロパティ]を開きます。
右側のパネルから、「Java Build Path」を選択して、「Librarys」タブに移動します。
[外部JARの追加]を選択して、mysqlドライバーをインポートします。
右側のパネルから、「Deployment Assembly」を選択します。
[追加...]を選択し、[Java Build Path Entries]を選択して、[Next]をクリックします。
リストにSQLドライバーが表示されます。それを選択して、最初にクリックします。
以上です!もう一度実行してみてください!乾杯!"
ここで、プロジェクト構造->ライブラリ-> +(追加)でjarファイルを追加する必要があります
私のために働いた唯一のものは、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
OK ..私も自分のソリューションに貢献できるかもしれません。プロジェクト-properties-> Deployment Assembly ...を右クリックします。mysql-connector-Java.jarを追加して適用する必要があります。このSQLコネクタを持つWebライブラリで構成されています...これは私にとってうまくいった。
Javaを1.8.0_101にアップグレードした後、同じエラーが発生しました。i。ビルドパスからmysql.jarを削除します。ii。サーバーとプロジェクトをクリーンアップします。ビルドパスに戻ります。
私のために働いた。
可能な解決策のほとんどは上記で説明されています。この問題の経験から、mysql-connector-jarをwebappモジュールの/ WEB-INF/libフォルダーに配置しましたが、うまく機能しました。
Javahomeではなく、プロジェクトにmysql-connector jarを保持します。その結果、ローカルクラスパスにあることを確認することで、確実に見つけることができます。大きな利点は、別のマシンへのプロジェクトを増やすことができ、これを再度セットアップすることを心配する(または忘れる)必要がないことです。個人的にはバージョン管理に含めるのが好きです。
MySQL JDBCドライバーjarファイルをコピーして、Tomcatまたはサーバーのlibフォルダーに貼り付けます。わたしにはできる。