JTDS驱动程序不适用于未加载Sql Server 2008R2和Denali Native SSPI库。检查java.library.path系统属性

时间:2011-06-15 10:55:25

标签: sql-server jdbc sql-server-2008-r2 sql-server-2012 jtds

我正在尝试使用JTDS驱动程序从我的应用程序使用Windows身份验证连接Sql Server数据库但是我收到了以下错误

  

SSO失败:本机SSPI库没有   加载。检查java.library.path   系统属性。

以下是我试图解决的情况,但仍然缺少某些东西..

  1. 我在系统目录中添加了ntlmauth.dll,它适用于Sql server 2005。
  2. 但是我为Sql Server 2008 R2和Denali尝试了同样的事情,但它给了我与上面提到的相同的错误
  3. 我还是考虑过我的意思是我从系统目录中的x64 \ SSO \ path复制了ntlmauth.dll。
  4. 我很困惑为什么这不适用于Sql Server 2008 R2和Denali。

3 个答案:

答案 0 :(得分:14)

尝试将ntlmauth.dll文件放在Java运行时环境的bin文件夹中(例如C:\Program Files\Java\jre7\bin)。

确保将DLL的“位数”(32位或64位)与JVM位数相匹配。

我使用SQL Server Express 2008 R2遇到了同样的问题,而MSDN SQL Server Forum Article推荐了这个适用于我的解决方案。

答案 1 :(得分:4)

除了直接将其放入JRE之外,您还可以指定java.library.path

-Djava.library.path=C:\jtds-1.3.1-dist\x64\SSO

上面的目录将包含ntlmauth.dll文件

答案 2 :(得分:0)

除了DeChrist的回复,我还必须在bin的{​​{1}}文件夹中添加相同的dll文件。在那种情况下,它对我有用。