no mssql-jdbc_auth-8.2.1.x64 in java.library.path



我正试图在我的Maven项目中连接到SQL DB,但一直收到以下异常:

"com.microsoft.sqlserver.jdbc.SQLServerException:此驱动程序未配置为集成身份验证….","..由以下原因引起:java.lang.UnsisfiedLinkError:java.library.path中没有mssql-jdbc_auth-8.2.1.x64….".

我已经尝试了java.library.path中没有sqljdbc_auth和UnsatisfiedLinkError的建议:java.library_path中没有sqljdbc_aauth,但它对我不起作用。

我已将sqljdbc_auth.dll的路径放在:中

  1. 全局PATH变量全局PATH变量屏幕截图

  2. C: \Program Files\Java\jdk-13.0.2\bin C:\Program Files\Java\jdk-13.2.2\bin 截图

  3. pom.xml(作为surefire插件依赖项中的配置(pom.xml屏幕截图

这是我的代码:

public class JDBC {
@Test
public  void test() throws SQLException, ClassNotFoundException {
String UserName="sa";
String Password="Error911";
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
String DB_URL ="jdbc:sqlserver://localhost:1433;databaseName=QADB;integratedSecurity=true;";
//OR by using ip
//DB_URL ="jdbc:sqlserver://192.168.0.104;databaseName=QADB;integratedSecurity=true;";
Connection con = DriverManager.getConnection(DB_URL, UserName, Password);
}
}

控制台输出中的异常:

com.microsoft.sqlserver.jdbc.SQLServerException:此驱动程序不是配置用于集成身份验证。。。。。。。。。。。。。。。。。。。。。。。。。。。

引起原因:java.lang.UnsisfiedLinkError:java.library.path中没有mssql-jdbc_auth-8.2.1.x64:[C:\Users\Automation\Microsoft JDBC Driver 6.0 for SQL服务器\sqljdbc_6.0\chs\auth\x64]。。……

类路径中似乎没有mssql-jdbc_auth-8.2.1.x64文件。

据我所知,该文件包含在Microsoft SQL JDBC驱动程序(enu/auth/x64文件夹(中:https://learn.microsoft.com/en-us/sql/connect/jdbc/download-microsoft-jdbc-driver-for-sql-server?view=sql-服务器-ver15

您可以将该文件添加到类路径中(例如,将其复制到:C:Program FilesJavajdk-13.0.2bin(并修复错误。

我也遇到了同样的问题,花了几个小时才解决。

  1. 确保将mssql-jdbc_auth-8.2.1.x64文件而不是sqljdbc_xa.dll文件复制到C:Program FilesJavajdk-13.0.2bin folder中。根据你的垃圾箱文件夹的截图,我不认为这是问题所在。

  2. 重新启动Eclipse并再次运行它。我在运行eclipse的情况下将文件复制到bin文件夹中,但没有成功。只有在我重新启动eclipse之后,驱动程序才开始正常工作。

其他答案中的建议会起作用,但对我来说,它们有点误导。

实际上,您所需要做的就是将所需版本的mssql-jdbc_auth-<version>.x64.dll放在系统路径上->将其添加到Path环境变量中,以便能够找到此dll。

您可以从下载相同版本的mssqljdbc驱动程序来获得mssql-jdbc_auth-<version>.x64.dllhttps://learn.microsoft.com/en-us/sql/connect/jdbc/microsoft-jdbc-driver-for-sql-server-support-matrix?view=sql-server-ver15#java和jdbc规范支持从enuauthx64文件夹中提取mssql-jdbc_auth.dll

只需遵循以下步骤,它肯定会修复"java.library.path中没有mssql-jdbc_auth-8.2.1.x64;以及";JDBC SQLServerException:"此驱动程序未针对集成身份验证进行配置"问题。

  1. 从下载sqljdbc_<version>_enu.ziphttps://learn.microsoft.com/en-us/sql/connect/jdbc/download-microsoft-jdbc-driver-for-sql-server?view=sql-server-ver15,根据您的Java版本。

  2. 解压缩它,阅读install.txt并按照它所说的操作

  3. mssql-jdbc_auth-8.2.2.x64.dll(存在于路径->C:\Program Files/Microsoft JDBC DRIVER 8.2 for SQL Server/sqljdbc_/enu/auth/x64中(粘贴到Java/jre8/bin和Java/jre 8/lib

为了能够与JDBC连接,您需要定义如下连接:

"jdbc:sqlserver://*******;authenticationScheme=NTLM;integratedSecurity=true;domain=******;databasename=**********;encrypt=true;trustServerCertificate=true;user=*******;password=*******;"

使用以下依赖项:

<dependency>
<groupId>com.microsoft.sqlserver</groupId>
<artifactId>mssql-jdbc</artifactId>
<version>10.2.0.jre8</version>
</dependency>

您应该删除maven依赖项:

<dependency>
<groupId>com.microsoft.sqlserver</groupId>
<artifactId>mssql-jdbc</artifactId>
</dependency>

然后:添加依赖JDBC驱动程序jar手动下载到这里

这对我有用。

我也遇到了同样的问题,我也浏览了你提到的帖子,我通过在\java\jre\bin\中添加mssql-jdbc_auth-8.2.2.x64.dll而不是\java\bin来解决了这个问题。我使用的是JDK,而不是JRE。

最新更新