web-dev-qa-db-ja.com

Java.library.pathにsqljdbc_authはありません

SQL Server 2008インスタンスに接続するJava EE Webアプリケーション。 Tomcatログは次のとおりです。

警告:sqljdbc_auth.dllの原因の読み込みに失敗しました:-Java.library.pathにsqljdbc_authがありません

27
AFF

1)JDBCドライバーをダウンロード こちら .


2)ファイルを解凍し、sqljdbc_version\fra\auth\x86または\ x64に移動します
3)sqljdbc_auth.dllC:\ Program Files\Java\jre_Version \にコピーしますbin
4)最後にEclipseを再起動します

40
Amine Soumiaa

Eclipseからこれを行う場合の手順は次のとおりです。

1)C:ドライブにフォルダー「sqlauth」を作成し、dllファイルをコピーしますsqljdbc_auth.dllフォルダへ

1)Run> Run Configurationsに移動します

2)クラスの「Arguments」タブを選択します

3)VM引数に以下のコードを追加します。

-Djava.library.path="C:\\sqlauth"

4)[適用]をクリックして[実行]をクリックします

他の methods を試してみてください。

11
nanospeck

エラーは明らかですよね?

Sqljdbc_auth.dllが存在するパスを追加していません。システム内でDLLがある場所を見つけ、それをクラスパスに追加します。

それも機能しない場合は、DLLが存在するフォルダー(\ Microsoft SQL Server JDBC Driver 3.0\sqljdbc_3.0\enu\auth\x86を想定しています)を追加します) PATH変数。

再びantまたはcmdを使用する場合は、-Djava.library.path = [path to MS_SQL_AUTH_DLL]を使用して明示的にパスを指定する必要があります

7
afrin216

簡単に修正するには、次の手順を実行します。

  1. goto: https://docs.Microsoft.com/en-us/sql/connect/jdbc/building-the-connection-url#Connectingintegrated
  2. JDBCファイルをダウンロードして、希望の場所に抽出します
  3. oS x64またはx86に一致するauthフォルダーを開きます
  4. sqljdbc_auth.dllファイルをコピーします
  5. 貼り付け:C:\ Program Files\Java\jdk_version\bin
  6. eclipseまたはnetbeansを再起動します
4
jfindley

同じ問題が発生しましたが、自分のアプリケーション内でした。 dllをコピーするソリューションはあまり便利ではないので気に入らなかったので、いくつかの調査を行い、次のプログラムによるソリューションを思い付きました。

基本的に、SQLサーバーへの接続を行う前に、パスに_sqljdbc_auth.dll_を追加する必要があります。

PathHelper.appendToPath("C:\\sqljdbc_6.2\\enu\\auth\\x64");

方法を知ったら:

_import Java.lang.reflect.Field;

public class PathHelper {
    public static void appendToPath(String dir){

        String path = System.getProperty("Java.library.path");
        path = dir + ";" + path;
        System.setProperty("Java.library.path", path);

        try {

            final Field sysPathsField = ClassLoader.class.getDeclaredField("sys_paths");
            sysPathsField.setAccessible(true);
            sysPathsField.set(null, null);

        }
        catch (Exception ex){
            throw new RuntimeException(ex);
        }

    }

}
_

現在、統合認証はチャームのように機能します:)。

https://stackoverflow.com/a/21730111/173464 に感謝します。

2

解決するために、次のことを行いました。

  1. コピーされたsqljdbc_auth.dll into dir:C:\Windows\System32
  2. アプリケーションを再起動しました
0
TedEd