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-specification-support

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

解决方法

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

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

A link for SQL Server JDBC driver for java 8

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...