web-dev-qa-db-ja.com

JDBCにdllがありません

現在、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をビルドパスに追加する方法を知りたいですか?特別な方法はありますか?

17
muffin

わかった、わかった! Java.library.pathを実際に変更する必要はありませんでしたが、sqljdbc.jarの「ネイティブライブラリの場所」を変更しました。

これは私が見つけることができる最良の答えです: https://stackoverflow.com/a/958074/2000342

現在、機能します。サポートに感謝します。

10
muffin

sqljdbc_auth.dllは、windows/system32フォルダーで動作します。これからsqljdbcドライバーをダウンロードしてください link 解凍すると、sqljdbc_auth.dll。今はsqljdbc_auth.dll system32フォルダ内でプログラムを実行します

36
SpringLearner

これを含むディレクトリにJava.library.pathを設定しますDLL which Javaはネイティブライブラリの検索に使用します。コマンドラインで-Dスイッチを指定します。

Java -Djava.library.path = C:\ Java\native\libs YourProgram

C:\ Java\native\libsにはsqljdbc_auth.dllが含まれている必要があります

これをご覧ください SO post Eclipseを使用している場合、または このブログ をプログラムで設定する場合。

4
Mr Spark

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

  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

eclipseまたはnetbeansを再起動します

4
jfindley

Java.library.pathを含むディレクトリを指すsqljdbc_auth.dllという-Dシステムプロパティを設定する必要があります。

4
Nick Holt

Dllファイルがない場合、このリンクからdllファイルをダウンロードできます http://en.osdn.jp/projects/sfnet_dose-grok/downloads/sqljdbc_auth.dll/

それ以外の場合は、接続しようとしているデータベースのユーザー名とパスワードを指定し、認証をfalseにする必要があります

2
Anoop M L

友人ビットバージョンが異なるため、同じ問題が発生しました次の点を確認してください* jdkビット64または32 * sqljdbc_4.0\enu\auth\x64またはx86のパスこのディレクトリはjdkビットに依存しています* sqljdbc_auth.dll selectあなたのビットx64またはx86に基づいてこのファイルをsystem32フォルダに入れてください、それは私のために動作します

0
Praganesh Patel

DLLがクラスパスにあることを確認する必要があります。

そのような方法の1つは、PATH環境変数のDLLへのパスを置くことです。

他のオプションは、次のように変数LD_LIBRARY_PATHのVM引数に追加することです:

Java -Djava.library.path=/path/to/my/dll -cp /my/classpath/goes/here MainClass

0
Mubin

Sqljdbc_auth.dllは、authフォルダー内のsqljdbcxx.jarファイルを取得するためにインストールするsqljdbc_x.xフォルダー内にあります。 scalaプロジェクトのベースにlibフォルダーを作成し、sqljdbc_auth.dllをこのフォルダーに移動します。これにより、sqljdbcxxに一致する64ビットまたは32ビットなどの正しいファイルを取得します。 .jarファイル。

0
Chad Crowe