3

以前の投稿を読むのにかなりの時間を費やしましたが、どれも役に立たないようです。NetBeans から単純な Java アプリを実行しようとしています。ここでは最も単純なコードを示します。

final String DB_URL = "jdbc:derby:CoffeeDB;create=true";         
try
  {
     // Create a connection to the database.
     Connection conn = DriverManager.getConnection(DB_URL);

     // If the DB already exists, drop the tables.
     dropTables(conn);

     // Build the Coffee table.
     buildCoffeeTable(conn);

     // Close the connection.
     conn.close();
  }
  catch (Exception ex)
  {
     System.out.println("ERROR: " + ex.getMessage());
  }

通常、環境変数が問題を引き起こしていますが、それを確認したところ、正しく設定されているようです:

クラスパス: C:\Program Files\Java\jdk1.7.0_17\db\lib\derby.jar;C:\Program Files\Java\jdk1.7.0_17\db\lib\derbytools.jar;

DERBY_HOME C:\Program Files\Java\jdk1.7.0_17\db

PATH: ( jdbc に関する部分のみ) C:\Program Files\Java\jdk1.7.0_17\db\bin

コマンドプロンプトから ij を使用して既にテーブルを作成しましたが、このエラーが発生したときに Netbeans を介して実行しようとすると機能しました。ただし、興味深いのは、コマンド プロンプトから sysinfo を実行すると、次のように表示されることです。

------------------ Java情報 ------------------

Java バージョン: 1.7.0_17

Java ベンダー: Oracle Corporation

Java ホーム: C:\Program Files\Java\jre7

Java クラスパス: C:\Program Files\Java\jdk1.7.0_17\db\lib\derby.jar;C:\Program Files\Java\jdk1.7.0_17\db\lib\derbytools.jar;C:\Program Files \Java\jdk1.7.0_17\db/lib/derby.jar;C:\Program Files\Java\jdk1.7.0_17\db/lib/derbynet.jar;C:\Program Files\Java\jdk1.7.0_17\ db/lib/derbyclient.jar;C:\Program Files\Java\jdk1.7.0_17\db/lib/derbytools.jar

OS名:Windows Vista

OS アーキテクチャ: amd64

OSバージョン:6.0

---> ご覧のとおり、以前のクラスパスに何らかの情報が追加され、derbytools.jar と derby.jar が 2 回表示されていますか?? 逆スラッシュと組み合わせて??

NetBeans を介してデバッグする場合、例外は DriverManager.java ファイルの次の行から発生します。

    Connection con = aDriver.driver.connect(url, info);     <--------------- here
    if (con != null) {
          // Success!
          println("getConnection returning " + aDriver.driver.getClass().getName());
          return (con);
    }

URL は正しい: jdbc:derby:CoffeeDB;create=true ですが、接続が null に戻り、SQLException がスローされます。何か案は?

4

2 に答える 2

2

「... に適したドライバーが見つかりません」という例外メッセージは、読み込まれた JDBC ドライバーのいずれも URL を受け入れなかったことを意味します。これにより、JDBC ドライバーがアプリケーションのクラスパスに含まれていない可能性が非常に高くなります。

Java アプリケーションが IDE から実行される場合、環境変数CLASSPATHはほとんどの場合無視されます。また、実行可能 jar から実行される場合は常に無視されます。IDE の build-path に実際に derby.jar が含まれていることを確認してください。または、それが実行可能な jar である場合はMETA-INF/manifest.mfClass-Path属性内にリストされていることを確認してください。

于 2013-03-30T07:31:14.320 に答える
1

プロジェクトを右クリックして、次の手順を実行できます...ビルド -> ビルド パスの構成 -> ライブラリ -> 外部 Jar の追加... ここで、*.jar ファイルへのパスを指定する必要があります。簡単な例https://github.com/mraab89/Tutorial_Java_Database_Connectivity_JDBC

于 2014-05-29T01:21:20.213 に答える