• ベストアンサー

JDBCのエラー

・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\以下 等に変更してみても変化はありません。 何が問題なのか、ご教授いただければと思います。 よろしくお願いします。

  • Java
  • 回答数5
  • ありがとう数7

質問者が選んだベストアンサー

  • ベストアンサー
  • THX1138
  • ベストアンサー率51% (108/208)
回答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 ジェイ! そりゃ見つかりません。 プロポーショナルフォントだとパッと見じゃ気がつきませんな……。

kreuz_z
質問者

お礼

先のエラーは無事に解決しました!! http://oshiete1.goo.ne.jp/qa1544247.html こちらの質問のソースを参考にしてみたところ、無事に実行されました。 これから、要所要所をエラーになっていたソースと比較していきたいと思います。 丁寧かつ分かりやすく質問に答えていただき、感謝しています。 ありがとうございました。

kreuz_z
質問者

補足

>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の前にファイル内で設定しているユーザ名が表示されないのが気になります。

その他の回答 (4)

  • yuji
  • ベストアンサー率37% (64/169)
回答No.5

参考までに、 MySQLのJDBC Driverのクラス名は com.mysql.jdbc.Driver です。 org.gjt.mm.mysql.Driver というのは、昔、使われていたもので、 以前に作られたプログラムのために、今も残っているだけです。 新規に作るのであれば、 com.mysql.jdbc.Driver を指定すべきでしょう。

kreuz_z
質問者

お礼

>yuji 様 ご回答ありがとうございます。 http://oshiete1.goo.ne.jp/qa1544247.html 上記の質問のソースを参考にしましたら、yuji様から頂いた回答と同じように書いてありました。 今回はこちらのソースで無事に実行に至りましたが、これからエラーのあったソースと見比べてみたいと思います。 ご丁寧に回答くださり、ありがとうございました。

  • THX1138
  • ベストアンサー率51% (108/208)
回答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 関連の処理だけをするプログラム(簡単なサンプルなど)であれば要りません。

kreuz_z
質問者

補足

ご回答ありがとうございます、とても助かります!! >環境変数の設定が違っているような気がします。 と言うのはもしかして前半の 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 上記のように、環境変数で指定したものが問題なく得られました。 >こういう場合は引用符で囲ってください。 なるほど、スペースで区切られてしまうことでまた違ったように理解されてしまうのですね;; 引用符で囲ってみたところ、エラーは最初と同じように戻ってしまいました。

  • THX1138
  • ベストアンサー率51% (108/208)
回答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\以下 ここに置いたものはのちに不毛なトラブルの原因になる 可能性があるので消しておいたほうがいいと思います。

kreuz_z
質問者

補足

またのご回答、ありがとうございます。 >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に必要性についてはどうなのでしょうか?

  • THX1138
  • ベストアンサー率51% (108/208)
回答No.1

起動時に与えているコマンドとオプションがあると わかりやすかったのですが、 おそらくクラスパスを与えていないのではと思います。 C:\>java sample とかやっていませんか。 C:\mysql\lib に JDBC ドライバの jar ファイルがあるのであれば C:\>java -classpath .;C:\mysql\lib sample とやればいけるかと思いますがどうでしょう。

kreuz_z
質問者

補足

THX1138様 ご回答ありがとうございます。 頂いたアドバイスのように実行を試みてみましたが、結果は変わりませんでした。 よろしくお願い致します。

関連するQ&A

  • java.lang.ClassNotFoundException: com.mysql.jdbc.Driverと出てしまいます。

    ご質問させてください。 まずは環境は、 ・Windows Vista Home Premium ・j2sdk1.4.2_16 ・mysql-connector-java-5.1.5 ・Mysql 5.0 ・Tomcat 5.5 ・eclipse-SDK-3.1.2-win32 となっております。 次に、環境変数を http://www.hellohiro.com/jdbcmysql.htm http://www.hellohiro.com/appli.htm を参考に、 CLASSPASS:.;%JAVA_HOME%\lib\tools.jar; C:\mysql\mysql-connector-java-5.1.5\mysql-connector-java-5.1.5-bin.jar; C:\Program Files\Apache Software Foundation\Tomcat 5.5\common\lib\servlet-api.jar; C:\Program Files\Apache Software Foundation\Tomcat 5.5\common\lib\mysql-connector-java-5.1.5-bin.jar;. JAVA_HOME:C:\j2sdk1.4.2_16 PATH:%JAVA_HOME%\bin と設定しました。 そして以下のプログラムを実行すると import java.sql.*; public class test { public static void main(String args[]) { try{ //接続の準備 String drv = "com.mysql.jdbc.Driver"; String url = "jdbc:mysql:///cardb"; String usr = "root"; String pw = "Gob3=104"; //データベースへの接続 Class.forName(drv); Connection cn = DriverManager.getConnection(url, usr, pw); //問い合わせの準備 Statement st = cn.createStatement(); String qry = "SELECT * FROM car_table"; //問い合わせ ResultSet rs = st.executeQuery(qry); //データの取得 ResultSetMetaData rm = rs.getMetaData(); int cnum = rm.getColumnCount(); while(rs.next()){ for(int i=1; i<=cnum; i++){ System.out.print(rm.getColumnName(i) + ":"+ rs.getObject(i) + " "); } System.out.println(""); } //接続のクローズ rs.close(); st.close(); cn.close(); } catch(Exception e){ e.printStackTrace(); } } } エラーが、 java.lang.ClassNotFoundException: com.mysql.jdbc.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 test.main(test.java:15) とでてしまいます。 EclipsでMySQLを用いて、データベースにアクセスするにはどうしたらよいのでしょうか。 お知恵をお貸しください。

    • ベストアンサー
    • Java
  • Oracle8i に接続しようと思うんですが、エラーが出ます。

    Oracle 8i に接続したいと思い、 C:\Oracle\Ora81\jdbc\lib に classes12.zip を置いています。 クラスパスの設定は、C:\Oracle\Ora81\jdbc\lib\classes12.zip としています。classes12 は oracle 9i 用を使っています。 ちなみに、OSはWin2000professional です。 // JDBC ドライバの登録 DriverManager.registerDriver( new oracle.jdbc.driver.OracleDriver() ); とすると、 Exception in thread "main" java.lang.NoClassDefFoundError: oracle/jdbc/driver/Or acleDriver at DbTest.main(DbTest.java:16) のエラーが出て、 Class.forName("oracle.jdbc.driver.OracleDriver");  とすると、 java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver 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 DbTest.main(DbTest.java:19) というエラーが出ます。 誰かわかる人がいたら、教えてください.よろしくお願いします。

    • ベストアンサー
    • Java
  • jdbcを利用したpostgres接続

    Solaris9/02 + PostgreSQL7.2.3 で構築しました。 java -version 1.4.0_01 です。 PostgreSQL の Configure時に --with-javaオプションを付け、 /usr/local/pgsql/share/java 配下にpostgres.jarが出来ました。 /home/ssm3u の .cshrcに setenv JAVA_HOME /usr/j2se setenv CLASSPATH /usr/local/pgsql/share/java/postgres.jar:. (postgres.jarファイルとカレント) を追加し、 % vi FirstDBAccess.java import java.sql.*; public class FirstDBAccess {  public static void main(String argv[]) {   try {    Class.forName("org.postgresql.Driver");   } catch (Exception e) {    e.printStackTrace();   }  } } % javac FirstDBAccess.java % java FirstDBAccess と実行すると、 java.lang.ClassNotFoundException: org.postgresql.Driver at java.net.URLClassLoader$1.run(URLClassLoader.java:198) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:186) at java.lang.ClassLoader.loadClass(ClassLoader.java:306) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:265) at java.lang.ClassLoader.loadClass(ClassLoader.java:262) at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:322) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:130) at FirstDBAccess.main(FirstDBAccess.java:5) となります。 上記エラーになるのは CLASSPATH設定がおかしい時と思うのですが、 何がおかしいのかわかりません。 Oracleとか他のDBの時はあっさりできたのに・・・ 他に設定が必要なのでしょうか? 見直せば良い点などお教えいただければ助かります。

  • 初歩の初歩で躓いてしまいました。

    C:\java\Samples\D1>javac SampleD1L3.java C:\java\Samples\D1>java SampleD1L3 Exception in thread "main" java.lang.NoClassDefFoundError: SampleD1L3 Caused By:java.long.ClassNotFoundException: sampleD1L3 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) 上記のような表示がでます。 環境変数は JAVA_HOME:C:\Program Files\Java\jdk1.5.0 PATH:%JAVA_HOME%\bin CLASSPATH:%JAVA_HOME%\lib\tools.jar 上記のように設定しました。 もしお気づきの点等ございましたら、ご教授の程よろしくお願い致します。

  • eclipse java oracle 接続について

    同じような質問があり、試してみたのですができませんでした 初心者なので、勉強不足だとは思っていますがどうかヨロシクお願いします Exception in thread "main" java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver 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 Oracletest.main(Oracletest.java:11) というエラーがでています オラクルのドライバが探せていないのはわかるのですがPATHも通しているので手詰まりになってしまいました ちなみに オラクル 10g java 1.5.0_09 を使っています 詳しい設定方法を教えて下さると助かります よろしくお願いします

  • java.lang.NoClassDefFoundErrorというエラーが出ます その2

    ご質問させて頂きます。 java.lang.NoClassDefFoundErrorというエラーが出ます http://oshiete1.goo.ne.jp/kotaeru.php3?q=952983 の続きの質問なんですが・・・。 次のような実行時エラーが出ます。 java.lang.ClassNotFoundException: org.postgresql.Driver at java.net.URLClassLoader$1.run(URLClassLoader.java:198) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:186) at java.lang.ClassLoader.loadClass(ClassLoader.java:299) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:265) at java.lang.ClassLoader.loadClass(ClassLoader.java:255) at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:315) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:140) at sample1.main(sample1.java:8) そこで、 >PostgreSQLのODBCドライバをCLASSPATHに含めていますか? >postgresql.jarとかpg72jdbc2.jarといったファイルがどこかにあるはずです. と、回答者の方からアドバイスをして頂きました。 ところが、postgresql.jarとかpg72jdbc2.jarもありませんでした。 ネットで検索をしたところ、「postgresql743.jar」というのがありましたので /usr/javaに格納しました。 /etc/profileに、 export PATH=$PATH:/usr/java export CLASSPATH=$CLASSPATH:/usr/java. と追加しました。 しかし、同じエラーが出てします。 対処方法をご存じでしたら、ご教授して頂けたら幸いです。

    • ベストアンサー
    • Java
  • jar ファイルが起動しなくなった。

    以前は、jar ファイルをダブルクリックすると起動したのですが、 jar のいくつかのバージョンからダブルクリックしても起動しなくなりました。 OS は、Windows XP, Java は、jre 1.6.0_07 です。 jar 1.5.0_09 のときは、確かに起動した *.jar ファイルです。 同様の現象でお困りの方、又は、解決された方、書き込みお願いします。 ちなみにエラーは、 Exception in thread "main" java.lang.NoClassDefFoundError: C:\Documents and Settings\aaa\デスクトップ\WireObject14/jar Caused by: java.lang.ClassNotFoundException: C:\Documents and Settings\aaa\デスクトップ\WireObject14.jar 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) です。

    • ベストアンサー
    • Java
  • 明示的にコンパイル

    java eclipse3.5を使ってプログラミングの勉強をしています。 あるプログラムを実行するために、事前にいくつかのプログラムを 明示的にコンパイルしなくてはいけないのですが、明示的にコンパイルする方法が分かりません。 あるサイトを見たら、【プロジェクト】ー>【すべて再ビルド】を 選択すればよいとかかれていたのでやってみたのですが、次のような エラーが出てしまいます。 Exception in thread "main" java.lang.ClassNotFoundException: EchoProtocolFactory 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 socket_110.ThreadMain.main(ThreadMain.java:22) このエラーを取り除くには、どうすればよいのでしょうか? 分かる方お願いします。

  • java.lang.NoClassDefFoundError。。。

    どうぞ知恵をお貸しください。 ・jdk-1.5.0.16 ・mysql-4.0.26-win32 ・mysql-connector-java-3.1.14 ・eclipse 3.2.0 をダウンロード、インストールしてjavaの勉強を行っています。 コマンドプロンプトよりコンパイルを成功した場合は実行時に下記のエラーが、 Exception in thread "main" java.lang.NoClassDefFoundError コンパイルに失敗した場合は「読み込めません」のエラーが出力されます。 環境変数でCLASSPATHも設定してありますが、あえて実行時にclasspathを指定しても試みてみましたがエラーは変わりません。 何が原因なのでしょうか? どうぞご指導をよろしくお願いします。 エラー全文 Exception in thread "main" java.lang.NoClassDefFoundError: sample (wrong name: mypackage/sample) at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(Unknown Source) at java.security.SecureClassLoader.defineClass(Unknown Source) at java.net.URLClassLoader.defineClass(Unknown Source) at java.net.URLClassLoader.access$100(Unknown Source) 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)

  • Macで実行可能jarが実行できない

    EclipseでJavaの開発をしているのですが、Windowsで実行可能jarでエクスポートするとダブルクリックで実行できるソースコードが同じコードで、Macでエクスポートすると実行出来ません。 ダブルクリックすると、 Java JARファイル"hoge.jar"を起動できませんでした。 というメッセージが出ます。コンソールから java hoge.jar と実行すると、 Exception in thread "main" java.lang.NoClassDefFoundError: Hoge/jar Caused by: java.lang.ClassNotFoundException: hoge.jar at java.net.URLClassLoader$1.run(URLClassLoader.java:202) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:190) at java.lang.ClassLoader.loadClass(ClassLoader.java:306) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) at java.lang.ClassLoader.loadClass(ClassLoader.java:247) と出ます。 Macは使い始めで余計によくわかりません。よろしくお願いします。

    • ベストアンサー
    • Java

専門家に質問してみよう