首页 > 解决方案 > R 通过 JDBC 连接到 SQL Server - 驱动程序版本错误

问题描述

我正在尝试通过 JDBC 连接到 SQL Server(是的,我知道 ODBC 更好,但我需要对服务器安全性进行更改)。

  library(RJDBC)
  library(rJava)
  drv <- JDBC("com.microsoft.sqlserver.jdbc.SQLServerDriver" , 
              "C:/SQL JDBC/sqljdbc_4.1/enu/jre7/sqljdbc41.jar" ,identifier.quote="`")

但我似乎找不到正确的驱动程序版本:

Error in .jfindClass(as.character(driverClass)[1]) : 
  java.lang.UnsupportedClassVersionError: com/microsoft/sqlserver/jdbc/SQLServerDriver has been compiled by a more recent version of the Java Runtime (class file version 58.0), this version of the Java Runtime only recognizes class file versions up to 52.0

我已尝试使用 4.0、4.1、4.2 和 8.4 的驱动程序:

https://docs.microsoft.com/en-us/sql/connect/jdbc/microsoft-jdbc-driver-for-sql-server-support-matrix?view=sql-server-ver15#java-and-jdbc-规范支持

我在 Windows 10 上安装了 64 位 R 和 64 位 Java。

标签: javarsql-serverjdbcrjava

解决方案


问题是您的机器上安装了 Java 8,但驱动程序是为 java 14 构建的(类文件版本 58.0说明了这一点)。

您可以在您的机器上安装 java 14 或获取 Java 8 的 JDBC 驱动程序。

Java 8 的 SQL Server JDBC 驱动程序的链接


推荐阅读