以前の投稿を読むのにかなりの時間を費やしましたが、どれも役に立たないようです。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 がスローされます。何か案は?