我正在尝试对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存在错误。
你可以在这个帖子中阅读关于我的问题的详细信息(..可能与你的不同,也可能不同(。