无法为ApacheDerby加载JDBC驱动程序
当我尝试使用 hibernate 将我的 java 应用程序连接到 Apache Derby 时出现此错误。
Caused by: java.lang.UnsupportedClassVersionError: org/apache/derby/jdbc/EmbeddedDriver has been compiled by a more recent version of the Java Runtime (class file version 53.0), this version of the Java Runtime only recognizes class file versions up to 52.0
我到处都读到这可能是因为缺少 jars,但我什至在 lib 文件夹中添加了以下 jars:
derby-10.15.2.0.jar
derbyclient-10.15.2.0.jar
derbynet-10.15.2.0.jar
derbyshared-10.15.2.0.jar
derbytools-10.15.2.0.jar
下面是我的数据源连接变量:
database.url=jdbc:derby://opt/derby/sampleDerbyDB;create=true
database.driver=org.apache.derby.jdbc.ClientDriver (Also tried using EmbeddedDriver but same error)
hibernate.dialect=org.hibernate.dialect.DerbyDialect
你能告诉我我做错了什么吗?我想继续使用相同的 jre/java 版本并且不想升级。
回答
根据https://en.wikipedia.org/wiki/Java_class_file,您遇到的错误是因为您使用的是用 Java 9 ( class file version 53.0)编译的 Derby并且您试图在 Java 8 ( class file version 52) 环境中运行它。每个能够运行字节码的 Java 运行时更新其支持的版本。
您可以将 JDK/JRE 升级到 Java 9 及更高版本或使用与 Java 8 兼容的 Derby