JTDS错误:未加载本机SSPI库

时间:2016-09-29 11:50:48

标签: java sql-server eclipse jtds

我已经多次看到这个问题,但我尝试过的所有答案都没有对我有用。 Connection字符串看起来像这样

url = "jdbc:jtds:sqlserver://server1/dbname;user=user;password=pswd"; //this one works fine
url = "jdbc:jtds:sqlserver://server1;dbname;databaseName=dbname;integratedSecurity=true"; //doesn't work

但是我得到了例外。

java.io.IOException: SSO Failed: Native SSPI library not loaded. Check the java.library.path system property.

我有jtds 1.2,我将ntlmauth.dll复制到我的lib文件夹,并在eclipse上添加了jtd-1.2.jar的Native库位置的路径,但没有任何改变。

还尝试将-Djava.library.path =。/ lib添加到我的运行配置中。我正在使用jre 1.7和Eclipse Helios运行RCP应用程序

2 个答案:

答案 0 :(得分:0)

我通过使用Microsfot JDBC驱动程序使我的程序工作。从他们的网站下载

https://www.microsoft.com/en-us/download/details.aspx?id=11774

并从连接字符串中删除了jtds

url = "jdbc:jtds:sqlserver://server1;dbname;databaseName=dbname;integratedSecurity=true";

答案 1 :(得分:0)

我遇到了同样的问题。

通常我会做这样的事情,这很好用:

myConnection = DriverManager.getConnection(dbConnection, "username", "pasword");

但是当试图从这样的方法中获取用户名和密码时:

myConnection = DriverManager.getConnection(dbConnection, getUser(), getPassword());

我得到了同样的错误。事实证明,getUser()正在返回null,这似乎使SQL Server尝试使用Windows身份验证登录,但未在该计算机上设置。因此,确保getUser()不是null会产生差异。