正在Java版本11(支持的最大版本为8)下加载意外Java类:查询SAP HANA数据库时出现Java.lang.As



我正在尝试对SAP HANA数据库进行JDBC调用。我的Java代码版本是Java 11。我使用的是ngdbc 2.11.14 HANA jdbc驱动程序。我得到了以下错误。

Unexpected Java class loaded under Java version 11 (maximum supported version is 8): java.lang.AssertionError
java.lang.AssertionError: Unexpected Java class loaded under Java version 11 (maximum supported version is 8)
at com.sap.db.jdbc.DriverSapDB._checkJavaVersion(DriverSapDB.java:2179)
at com.sap.db.jdbc.DriverSapDB.checkJavaVersionMaximum8(DriverSapDB.java:2154)

我也可以在反编译器中看到,下面的代码在Driver.java文件中,它检查java的最高版本8。这是否意味着SAP HANA JDBC驱动程序不支持Java 11?

public class Driver extends DriverSapDB {
static {
checkJavaVersionMaximum8();
}

SAP HANA JDBC驱动程序是一个多版本JAR。根据我的基本理解,这意味着它为Java<=8,并且对于Java>8.

问题的简短回答:是的,SAP HANA JDBC驱动程序确实支持Java 11(及更高版本(

您的代码(或框架(似乎在内部获取了不正确的Java 8类文件。我在过去遇到过一个问题,它导致了与您看到的相同的错误消息。对我来说,这是在使用OSGi的环境中发生的,并且是由于ApacheFelix中的多版本JAR存在错误。

你可以在这个帖子中阅读关于我的问题的详细信息(..可能与你的不同,也可能不同(。

最新更新