2011-06-07 16 views
1

は私がmysql-connector-java-5.1.16.zipMySQLのJDBCドライバにClassNotFoundException

解凍のmysql-コネクタのjava-5.1をダウンロードし、私のデスクトップAPP

でのMySQL JDBCドライバを登録することはできません。 16-bin.jarを

は、Eclipse

でのビルド・パスには、このjarファイルを追加します。私のアプリで libフォルダに入れてでも、Class.forNameの( "はcom.mysql.jdbc.Driver")がスローされますClassNotFoundException

何が間違っていますか?

enter image description here

答えて

2

これを試してみてください。

public static void main(String[] args) throws Exception { 
    Class.forName("com.mysql.jdbc.Driver"); 
} 

問題はClass.forName(String)がチェック例外をスローということです。チェック例外を使用すると、次のいずれかを行うことができます。

  1. 例外をキャッチします。
  2. メソッドが例外をスローすることを宣言します。 (これは私が上で提案したものです)。ここで

例外をキャッチする例を示します。

public static void main(String[] args) throws Exception { 
    try { 
     Class.forName("com.mysql.jdbc.Driver"); 
    } catch(ClassNotFoundException e) { 
     //do some exception handling 
    } 
} 
+0

彼のスクリーンショットから、Eclipseがcatch/tryでその行のコードをラップするか、メソッドシグネチャにThrowsを追加することが必要であることが明らかです。彼の質問はDriverクラスが実行時に見つからない理由です。 –

+0

正常に動作します!ありがとうございます – zim32

+0

@Tanner:私は、zim32がEclipseでこの問題を認識しており、コードを実行する時点に達していないと思います。 –

0
  1. あなたはjarファイルは、Eclipseのビルド・パスに実際にあることをダブルチェックできます。

    Project Properties > Java Build Path > Libraries > Add JARS 
    
  2. 試してみてください:Eclipseの[プロジェクト]メニューの[Project > Clean。あなたのlibディレクトリに

1

  1. 右あなたのドライバが含まれているjarファイルをクリックしてください。
  2. あなたはJDBC 4.0互換ドライバを実行している場合は、もはや自動的にドライバをロードする必要があり、また再び

をあなたのコードを実行していないパス

  • を構築するために追加]を選択します
  • をパスに構築するために行きます。 JDBC 4.0仕様、java.sql.Driverの自動荷重下のセクション3.1は

    DriverManager.getConnectionを言うによると は、自動的にJDBCドライバをロード へのJava SE サービスプロバイダのメカニズムを利用するように変更されました。この は、 Class.forNameを呼び出す必要がなくなります。

  • +1

    どうもありがとうございました。数時間の努力の結果、あなたのソリューションは私を助けました。 – Bharath

    関連する問題