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
的目录。
为便于修复,请执行以下步骤:
- 转到: https : //docs.microsoft.com/en-us/sql/connect/jdbc/building-the-connection-url#Connectingintegrated
- 下载JDBC文件并解压缩到您的首选位置
- 打开与您的OS x64或x86匹配的auth文件夹
- 复制sqljdbc_auth.dll文件
- 粘贴: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文件匹配的文件。