現在、JavaでSQLを使用しています。最近、私はこのエラーを受け取りました:
com.Microsoft.sqlserver.jdbc.AuthenticationJNI <clinit>
WARNING: Failed to load the sqljdbc_auth.dll cause : no sqljdbc_auth in Java.library.path
これは、接続文字列にパラメータintegratedSecurity=true;
を追加すると発生します。エラーメッセージは、sqljdbc_auth.dllが欠落していることを明確に示しているため、sqljdbc4.jarを保持するのと同じパスにdllを配置しようとしました。
ただし、これは機能しないため、実際にこのdllをビルドパスに追加する方法を知りたいですか?特別な方法はありますか?
わかった、わかった! Java.library.pathを実際に変更する必要はありませんでしたが、sqljdbc.jarの「ネイティブライブラリの場所」を変更しました。
これは私が見つけることができる最良の答えです: https://stackoverflow.com/a/958074/2000342
現在、機能します。サポートに感謝します。
sqljdbc_auth.dll
は、windows/system32フォルダーで動作します。これからsqljdbcドライバーをダウンロードしてください link 解凍すると、sqljdbc_auth.dll
。今はsqljdbc_auth.dll
system32フォルダ内でプログラムを実行します
簡単に修正するには、次の手順を実行します。
eclipseまたはnetbeansを再起動します
Java.library.path
を含むディレクトリを指すsqljdbc_auth.dll
という-Dシステムプロパティを設定する必要があります。
Dllファイルがない場合、このリンクからdllファイルをダウンロードできます http://en.osdn.jp/projects/sfnet_dose-grok/downloads/sqljdbc_auth.dll/
それ以外の場合は、接続しようとしているデータベースのユーザー名とパスワードを指定し、認証をfalseにする必要があります
友人ビットバージョンが異なるため、同じ問題が発生しました次の点を確認してください* jdkビット64または32 * sqljdbc_4.0\enu\auth\x64またはx86のパスこのディレクトリはjdkビットに依存しています* sqljdbc_auth.dll selectあなたのビットx64またはx86に基づいてこのファイルをsystem32フォルダに入れてください、それは私のために動作します
DLLがクラスパスにあることを確認する必要があります。
そのような方法の1つは、PATH環境変数のDLLへのパスを置くことです。
他のオプションは、次のように変数LD_LIBRARY_PATHのVM引数に追加することです:
Java -Djava.library.path=/path/to/my/dll -cp /my/classpath/goes/here MainClass
Sqljdbc_auth.dllは、authフォルダー内のsqljdbcxx.jarファイルを取得するためにインストールするsqljdbc_x.xフォルダー内にあります。 scalaプロジェクトのベースにlibフォルダーを作成し、sqljdbc_auth.dllをこのフォルダーに移動します。これにより、sqljdbcxxに一致する64ビットまたは32ビットなどの正しいファイルを取得します。 .jarファイル。