1

JDBC 接続を使用するアプリケーションがあります。Eclipse環境から実行すると、接続も問題ありません。しかし、実行可能なjarファイルにパックし、コマンドラインから実行すると、ラインを呼び出します

DriverManager.getConnection(url, user, password);

正しい認証情報を使用すると、アプリケーションがフリーズします。(間違ったログイン試行では、すべて問題ありません - SQLServerException がスローされます)。異なるライブラリーを選択して jar ファイルを作成しようとしましたが、結果は同じです。

誰でも助けることができますか?

私は sqljdbc4.jar ライブラリを使用しています

私のデータベースクラスのコンストラクター:

public Database(String url, String user, String password) throws SQLException, ClassNotFoundException {
    Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");

    System.out.println("forname");
    connection = DriverManager.getConnection(url, user, password);
    System.out.println("get connection");
}

正しいログイン後、例外はスローされず、「get connection」文字列は出力されません (「forname」文字列のみが出力されます)

4

2 に答える 2

1

Java 6 Update 29 を使用していますか? その場合は、Java 6 Update 30 以降 (できれば最新の Update 32) に更新します。その Java バージョンには、Microsoft SQL Server JDBC ドライバーがハングするバグがありました。

于 2012-05-15T17:23:56.967 に答える
0

"凍った"?空の catch ブロックで例外をキャッチしていますか?

JDBC ドライバーの JAR は、Eclipse で実行するときは CLASSPATH にあるに違いありませんが、実行可能 JAR を実行するときはそうではありません。Class-Path を JAR マニフェストに追加し、すべての JAR を実行可能 JAR に配置します。それはそれを行う必要があります。

于 2012-05-14T13:14:56.653 に答える