4

sqljdbc_auth.dllファイルをプロジェクトライブラリに追加しようとしています。dllを含むフォルダーを外部クラスフォルダーとして追加します。

ここでは、基本的に、Microsoftが提供するSQLドライバーを使用してSQLSERVER2008データベースに接続しようとしています。

私のコードは

private static void Connect(){
        try
        {
            Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
            String connectionUrl = "jdbc:hostname:1433;databaseName=dbname;"

                + "user=username;password=password";
            java.sql.Connection con = DriverManager.getConnection(connectionUrl);
        }
        catch(ClassNotFoundException e)
        {
            e.printStackTrace();
        }
        catch(SQLException e2)
        {
            e2.printStackTrace();
        }
    }`

次のエラーが発生します

WARNING: Failed to load the sqljdbc_auth.dll cause : no sqljdbc_auth in java.library.path
com.microsoft.sqlserver.jdbc.SQLServerException: This driver is not configured for integrated authentication. ClientConnectionId:b83147c7-b45a-4f35-b601-195a0aa9c32c
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.terminate(SQLServerConnection.java:1667)
    at com.microsoft.sqlserver.jdbc.AuthenticationJNI.<init>(AuthenticationJNI.java:60)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:2229)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$000(SQLServerConnection.java:41)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:2220)
    at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:5696)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:1715)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:1326)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:991)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:827)
    at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:1012)
    at java.sql.DriverManager.getConnection(Unknown Source)
    at java.sql.DriverManager.getConnection(Unknown Source)
    at com.sagar.com.package1.T1.Connect(T1.java:21)
    at com.sagar.com.package1.T1.main(T1.java:37)
Caused by: java.lang.UnsatisfiedLinkError: no sqljdbc_auth in java.library.path
    at java.lang.ClassLoader.loadLibrary(Unknown Source)
    at java.lang.Runtime.loadLibrary0(Unknown Source)
    at java.lang.System.loadLibrary(Unknown Source)
    at com.microsoft.sqlserver.jdbc.AuthenticationJNI.<clinit>(AuthenticationJNI.java:35)
    ... 13 more
4

3 に答える 3

9

もう1つのオプションは、プロジェクトのメインクラスのVMパラメーターに次のようなものを追加することです。

-Djava.library.path="C:\Program Files\Microsoft JDBC Driver 4.0 for SQL Server\sqljdbc_4.0\enu\auth\x64"

(sqljdbc_auth.dllファイルへのパスを指定します)。環境のPATHまたはEclipseIDEjvmパラメーターを変更する必要はありません。

プロジェクトのメインクラスとして、メニューオプションを選択しますRun As >> Run Configurations... 構成を実行します。

于 2014-06-26T20:50:13.083 に答える
2

Eclipse内からDLLを使用する場合は、システム上の場所にDLLを含めるか、Eclipseの実行構成でプロパティPATHを明示的に指定する必要があります。java.library.path

于 2013-01-23T09:07:18.177 に答える
1

Windowsプラットフォームでは、Java.library.pathのデフォルトはPATH環境変数です。簡単な解決策は、DLLをパス(例:windows / system32)にコピーし、Eclipseを再起動することです。また、DLLタイプはJavaバージョンと一致する必要があります。つまり、32ビットJavaを使用している場合は、32ビットDLLを使用する必要があります。

于 2013-01-23T06:43:47.660 に答える