
・jdk-1.5.0.16
・mysql-4.0.26-win32
・mysql-connector-java-3.1.14
をダウンロード、インストールして現在、Javaの勉強をしているものです。
JDBCについてなのですが、下記の通りにダウンロード、インストールを行いました。
1.mysql-connector-java-3.1.14.zipファイルをDLフォルダにDL
2.デスクトップに解凍
3.C直下にフォルダごと移動
4.C:直下に移動したmysql-connector-java-3.1.14フォルダのmysql-connector-java-3.1.14-bin.jarをCLASSPATHに追加
ファイルをコマンドプロンプトでコンパイルすると通るのですが、実行すると下記のエラーになります。
java.lang.ClassNotFoundException: org.git.mm.mysql.Driver
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClassInternal(Unknown Source)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
at jdbctest.main(jdbctest.java:6)
過去の質問などを見て環境変数の設定も行ったのですが、どうしてもうまくいきません。
google検索でmysql-connector-java-3.1.14-bin.jarファイルの置き場所を、
C:\mysql\lib\以下
C:\Program Files\Java\jdk1.5.0_16\lib\以下
C:\Program Files\Java\jre1.5.0_16\lib\ext\以下
等に変更してみても変化はありません。
何が問題なのか、ご教授いただければと思います。
よろしくお願いします。
No.4ベストアンサー
- 回答日時:
> C:\Program Files\Java\jdk1.5.0_16\lib\tools.jar
> の部分でしょうか?
あってもかまいませんが、
少なくとも今回のサンプルにはいらないと思われます。
とまあ、書いてはみましたが、真の原因とは全く関係なかったりします。
> java.lang.ClassNotFoundException: org.git.mm.mysql.Driver
原因はココです。
-------------------------------------------------------------
C:\>jar tf mysql-connector-java-5.1.6-bin.jar | grep Driver
META-INF/services/java.sql.Driver
com/mysql/jdbc/Driver.class
com/mysql/jdbc/NonRegisteringDriver.class
com/mysql/jdbc/NonRegisteringReplicationDriver.class
com/mysql/jdbc/ReplicationDriver.class
org/gjt/mm/mysql/Driver.class
-------------------------------------------------------------
org/gjt/mm/mysql/Driver.class
j J ジェイ!
そりゃ見つかりません。
プロポーショナルフォントだとパッと見じゃ気がつきませんな……。
この回答への補足
>org/gjt/mm/mysql/Driver.class
>j J ジェイ!
i ではなく j だったとは!!
…確かに、よくよく見てみるとjでしたね…大変お騒がせしました;;
org/git/mm/mysql/Driver.class
↓
org/gjt/mm/mysql/Driver.class
変更してみたところ、確かにこれまで出ていたエラーは表示されなくなりましたが…。
java.sql.SQLException: Access denied for user: '@localhost' to database 'sampledb'
今度は上記のエラーが。
おそらく許可がされていない為にアクセス拒否されているんだろうとは思うのですが、
localhostの前にファイル内で設定しているユーザ名が表示されないのが気になります。
先のエラーは無事に解決しました!!
http://oshiete1.goo.ne.jp/qa1544247.html
こちらの質問のソースを参考にしてみたところ、無事に実行されました。
これから、要所要所をエラーになっていたソースと比較していきたいと思います。
丁寧かつ分かりやすく質問に答えていただき、感謝しています。
ありがとうございました。
No.5
- 回答日時:
参考までに、
MySQLのJDBC Driverのクラス名は
com.mysql.jdbc.Driver
です。
org.gjt.mm.mysql.Driver
というのは、昔、使われていたもので、
以前に作られたプログラムのために、今も残っているだけです。
新規に作るのであれば、
com.mysql.jdbc.Driver
を指定すべきでしょう。
>yuji 様
ご回答ありがとうございます。
http://oshiete1.goo.ne.jp/qa1544247.html
上記の質問のソースを参考にしましたら、yuji様から頂いた回答と同じように書いてありました。
今回はこちらのソースで無事に実行に至りましたが、これからエラーのあったソースと見比べてみたいと思います。
ご丁寧に回答くださり、ありがとうございました。
No.3
- 回答日時:
> ここのclasspathは環境変数で指定しているものと同じでなくてはと思い至りましたので、
環境変数で設定してたんですか。
であればオプション -classpath は要りません。
どちらかを指定すれば可です。
環境変数の設定が違っているような気がします。
C:\>echo %CLASSPATH%
としたときに期待する値が表示されますか?
> エラーが下記の通りに変わりました。
これはまた別な原因で、指定した classpath に
スペースが入っていてそこで区切られてしまったためです。
java
-classpath .;C:\Program
Files\Java\jdk1.5.0_16\lib...
と解釈され、
Files\Java\jdk1.5.0_16\lib...
という起動用クラスを探しにいった結果です。
こういう場合は引用符で囲ってください。
java -classpath ".;C:\Program Files\Java\jdk1.5.0_16\lib..." sample
> 本来なら使用するべきなのでしょうか?
> また、eclipseで実行する場合のtomcatに必要性についてはどうなのでしょうか?
JDBC 関連の処理だけをするプログラム(簡単なサンプルなど)であれば要りません。
この回答への補足
ご回答ありがとうございます、とても助かります!!
>環境変数の設定が違っているような気がします。
と言うのはもしかして前半の
C:\Program Files\Java\jdk1.5.0_16\lib\tools.jar
の部分でしょうか?
>C:\>echo %CLASSPATH%
>としたときに期待する値が表示されますか?
C:\java>echo %CLASSPATH%
.;C:\Program Files\Java\jdk1.5.0_16\lib\tools.jar;C:\mysql-connector-java-3.1.14
\mysql-connector-java-3.1.14-bin.jar
上記のように、環境変数で指定したものが問題なく得られました。
>こういう場合は引用符で囲ってください。
なるほど、スペースで区切られてしまうことでまた違ったように理解されてしまうのですね;;
引用符で囲ってみたところ、エラーは最初と同じように戻ってしまいました。
No.2
- 回答日時:
> 結果は変わりませんでした。
すみません。不足がありました……。
Jar ファイルの名前まで書かないとダメですね。
C:\>java -classpath .;C:\mysql\lib\mysql-connector-java-3.1.14-bin.jar sample
それから、
C:\Program Files\Java\jdk1.5.0_16\lib\以下
C:\Program Files\Java\jre1.5.0_16\lib\ext\以下
ここに置いたものはのちに不毛なトラブルの原因になる
可能性があるので消しておいたほうがいいと思います。
この回答への補足
またのご回答、ありがとうございます。
>Jar ファイルの名前まで書かないとダメですね。
>C:\>java -classpath .;C:\mysql\lib\mysql-connector-java-3.1.14-bin.jar sample
試してみましたが、こちらでも結果は変わりませんでした。
ここのclasspathは環境変数で指定しているものと同じでなくてはと思い至りましたので、
.;C:\Program Files\Java\jdk1.5.0_16\lib\tools.jar;C:\mysql-connector-java-3.1.14\mysql-connector-java-3.1.14-bin.jar sample
と試してみたところ、エラーが下記の通りに変わりました。
Exception in thread "main" java.lang.NoClassDefFoundError: Files\Java\jdk1/5/0_1
6\lib\tools/jar;C:\mysql-connector-java-3/1/14\mysql-connector-java-3/1/14-bin/j
ar
いくつかお尋ねしても良いでしょうか?
今現在はコマンドプロンプトで実行しているためにtomcatは使用していないのですが、本来なら使用するべきなのでしょうか?
また、eclipseで実行する場合のtomcatに必要性についてはどうなのでしょうか?
No.1
- 回答日時:
起動時に与えているコマンドとオプションがあると
わかりやすかったのですが、
おそらくクラスパスを与えていないのではと思います。
C:\>java sample
とかやっていませんか。
C:\mysql\lib に JDBC ドライバの jar ファイルがあるのであれば
C:\>java -classpath .;C:\mysql\lib sample
とやればいけるかと思いますがどうでしょう。
この回答への補足
THX1138様
ご回答ありがとうございます。
頂いたアドバイスのように実行を試みてみましたが、結果は変わりませんでした。
よろしくお願い致します。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Java マイクラjavaでForgeを入れたいのですが、インストールした.jarファイルが展開されてしまい中 1 2023/07/28 22:30
- Java jdk17.06のインストーラーが起動しない 1 2023/03/27 21:58
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- Java JavaでWebページ作成 7 2023/07/21 21:09
- HTML・CSS ボタンをクリックした時に、入力フォームのすぐ下部に、「入力欄が空白です」というテキストメッセージが表 1 2022/04/27 16:25
- Java mac mini 2009 でのmac OS における Java の入れ替えについて 1 2022/12/27 19:23
- その他(ゲーム) マインクラフトJAVA版の導入・ローカルマルチプレイについて 1 2022/03/23 18:59
- UNIX・Linux ubuntuのサーバー(virtual box)が、再起動するとデータが消えてしまいます。 4 2022/04/27 21:29
- C言語・C++・C# C#の基本文法が詳しく書かれている教科書的な本ありますか 2 2023/02/11 03:48
- JavaScript JavascriptからSQLへ繋ぎ方が分からない 3 2022/07/07 00:27
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Googleログインボタンのデザイ...
-
JDONWROADER2のエラー修復
-
「main メソッドを持つクラスが...
-
配列にnullを代入すると、null...
-
マイクラでPythonのプログラミ...
-
jdk17.06のインストーラーが起...
-
プログラミングの問題です。大...
-
正規表現について質問です。 カ...
-
eclipseで作ったプログラムを他...
-
スプレッドシートからリマイン...
-
googleスプレッドシートのスク...
-
googleスプレッドシートのGASに...
-
Verilogについて質問です。この...
-
論理回路設計をVerilogで行う問...
-
ゲーム開発の入門書を探しています
-
jdbcでinsert,delete,createをe...
-
session,requestはjspで未定義...
-
サーブレットをapacheで公開す...
-
下記のリストならno002が含まれ...
-
is this even a thing?
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
JDONWROADER2のエラー修復
-
Googleログインボタンのデザイ...
-
配列にnullを代入すると、null...
-
jdbcでinsert,delete,createをe...
-
「main メソッドを持つクラスが...
-
プログラミングの問題です。大...
-
eclipseで作ったプログラムを他...
-
正規表現について質問です。 カ...
-
Eclipse 動的プロジェクトで404...
-
マイクラでPythonのプログラミ...
-
jdk17.06のインストーラーが起...
-
自作Androidアプリのデータ引き...
-
直し方について教えて頂きたい...
-
eclipse実行ができない
-
サーブレットをapacheで公開す...
-
あんまりお料理しないのに台所...
-
CSV出力を画面から選択したデー...
-
次のhtml・cssでspan内の文字を...
-
問題作成のWebアプリの作り方を...
-
ゲーム開発の入門書を探しています
おすすめ情報