0

お願い助けて!他のトピックを見ましたが、解決策が見つかりませんでした。Eclipse を使用して JAVA で DBconnection クラスを作成する必要があります。これは私のコードです

public static void main(String[] argv) { 
    try {

        Class.forName("oracle.jdbc.driver.OracleDriver");

    } catch (ClassNotFoundException e) {
        e.printStackTrace();
        return;
    }

    Connection connection = null;
    try {

        connection = DriverManager.getConnection(
                "jdbc:oracle:thin:@localhost:1521:XE", "username",
                "password");
    } catch (SQLException e) {
        e.printStackTrace();
        return;
    }

実行するとエラーが返されます:

java.lang.ClassNot FoundException: oracle.jdbc.driver.OracleDriver

よくある間違いであることはわかっていますが、解決策が見つかりません。プロジェクトでは、ドライバー用の jar ファイル ojdbc6.jar をインポートしました。なぜ機能しないのかわかりません。

4

3 に答える 3

0

ojdbc6.jarin クラスパス がありません。

以下のようにクラスパスに追加できます

あなたはから瓶を得ることができます{ORACLE DRIVER INSTALL PATH}\jdbc\lib\ojdbc6.jar

それで、

Go to Project properties (Project -> Properties) -> Java Build Path -> 
Libraries -> Add external JARs -> 
select ojdbc6.jar from your filesystem 

名前が示すようClassNotFoundExceptionに、Java はのサブクラスでjava.lang.Exceptionあり、Java 仮想マシンが特定のクラスをロードしようとして、要求されたクラスがクラスパスに見つからない場合に発生します。

この例外に関するもう 1 つの重要な点は、これはチェック済みの例外ClassNotFoundExceptionであり、try-catch ブロックまたは throws 句を使用して Java でスローされる可能性のあるメソッドを使用しているときに、明示的に例外処理を提供する必要があることです。

オラクルのドキュメント

public class ClassNotFoundException
 extends ReflectiveOperationException

アプリケーションが以下を使用して文字列名を介してクラスにロードしようとするとスローされます。

  • クラス Class の forName メソッド。
  • クラス ClassLoader の findSystemClass メソッド。
  • クラス ClassLoader の loadClass メソッド。

指定された名前のクラスの定義が見つかりませんでした。

リンク

于 2013-10-16T15:29:36.153 に答える
0

Oracle ドライバー (.jar) ファイルをクラスパスに追加します。

ドライバのダウンロードについては、以下のリンクを参照してください。 http://www.oracle.com/technetwork/database/features/jdbc/index-091264.html

于 2013-10-16T15:30:23.867 に答える
0

JDBC ドライバー JAR をビルド パスに追加したが、ランタイム クラスパスには追加していない可能性があります。そのため、アプリを実行しているときにクラスが見つかりません。アプリの起動構成を編集し、JDBC ドライバー JAR がそのクラスパスに含まれていることを確認する必要があります。

ダイアログを開いて起動 (実行またはデバッグ) 構成を編集する方法は次のとおりです。 スクリーンショット

于 2013-10-16T16:46:04.920 に答える