无法为 Apache Derby 加载 JDBC 驱动程序 [重复]

Posted

技术标签:

【中文标题】无法为 Apache Derby 加载 JDBC 驱动程序 [重复]【英文标题】:Unable to load JDBC driver for Apache Derby [duplicate] 【发布时间】:2020-12-08 07:21:20 【问题描述】:

当我尝试使用 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 版本并且不想升级。

【问题讨论】:

【参考方案1】:

根据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

【讨论】:

另外,我想知道是否有任何方法可以在 apache derby 中使用 mysql 数据类型? 这似乎与这个问题无关。也许在 SO 中创建一个新问题。谢谢 对不起,提出了这个新问题:***.com/questions/65196315/…你能看一下吗?

以上是关于无法为 Apache Derby 加载 JDBC 驱动程序 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

Derby 在使用 Maven 时给出 ClassNotFoundException: org.apache.derby.jdbc.EmbeddedDriver

org.apache.derby.jdbc.ClientDriver 在哪里?

Derby

Derby 客户端 jdbc 驱动程序连接错误:无法创建数据库“示例”

基于 Eclipse 的 Apache Derby 工具

Java Derby DB 错误“线程“index-stat-thread”中的异常”和“无法获得 JDBC 连接”错误