JDBC中缺少dll

我目前正在使用Java中的SQL。 最近我收到了这个错误:

com.microsoft.sqlserver.jdbc.AuthenticationJNI  WARNING: Failed to load the sqljdbc_auth.dll cause : no sqljdbc_auth in java.library.path 

当我添加参数integratedSecurity=true;时会发生这种情况integratedSecurity=true; 在连接字符串中。 错误消息清楚地表明缺少sqljdbc_auth.dll,所以我尝试将dll放在与保留sqljdbc4.jar相同的路径中。

但是,这不起作用,所以我想知道我实际上如何将这个dll添加到我的构建路径? 有没有特殊的方法呢?

保持sqljdbc_auth.dll在你的windows / system32文件夹中,它将工作。从这个链接下载sqljdbc驱动程序解压缩它,你会发现sqljdbc_auth.dll 。现在保持sqljdbc_auth.dll在system32文件夹中并运行你的程序

好吧,伙计们,我发现了! 我真的不需要更改java.library.path而是更改sqljdbc.jar的“本机库位置”

这是我能找到的最佳答案: https : //stackoverflow.com/a/958074/2000342

它现在有效,感谢您的支持!

您需要设置一个名为java.library.path的-D系统属性,该属性指向包含sqljdbc_auth.dll的目录。

为便于修复,请执行以下步骤:

  1. 转到: 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

将java.library.path设置为包含此DLL的目录,Java使用该目录查找本机库。 在命令行上指定-D开关

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

C:\ Java \ native \ libs应包含sqljdbc_auth.dll

如果您要使用Eclipse,请查看此SOpost ,或者如果您想以编程方式设置此博客 。

如果缺少dll文件的情况,可以从此链接下载dll文件http://en.osdn.jp/projects/sfnet_dose-grok/downloads/sqljdbc_auth.dll/

否则,您需要提供您尝试连接的数据库的用户名和密码,并将身份validation设置为false

您必须确保您的DLL在类路径中。

一种这样的方法是将路径放在PATH环境变量中的DLL。

其他选项是将其添加到变量LD_LIBRARY_PATH中的VM参数,如下所示:

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

朋友我有同样的问题,因为不同的位版本确保以下点*您的jdk位64或32 *您的路径sqljdbc_4.0 \ enu \ auth \ x64或x86此目录取决于您的jdk位* sqljdbc_auth.dll选择这个文件基于您的位x64或x86并将其放在system32文件夹中,它将适用于我

sqljdbc_auth.dll位于您安装的sqljdbc_x.x文件夹中,用于检索auth文件夹中的sqljdbcxx.jar文件。 在scala项目的基础上创建一个lib文件夹,并将sqljdbc_auth.dll移动到此文件夹中。 这可以确保您获得正确的文件,例如64位或32位与sqljdbcxx.jar文件匹配的文件。