不支持的主要.次要版本 51.0(无法加载类 org.postgresql.Driver)

2022-09-01 22:00:34

使用 maven 创建了一个 Web 应用程序,并将其部署在 heroku 上。一切正常,但当我调用使用postgresql-9.2-1002.jdbc4驱动程序的操作时,我得到:

java.lang.UnsupportedClassVersionError: org/postgresql/Driver : Unsupported major.minor version 51.0 (unable to load class org.postgresql.Driver)

我知道问题是我在我的开发环境中使用jdk 7,而一个较低的版本正在heroku上运行(至少我认为是这样)。我的第一个问题是,为什么其他操作没有给出这个错误,只有使用postqresql驱动程序的操作才会给这个问题,应用程序的其余部分工作得很好?我做的另一件事是下载jdk 6,然后将其添加到我的项目构建路径中,然后将eclipse编译器合规性配置为1.6,但即使这样,我也有同样的问题。我该如何解决这个问题?


答案 1

对于 java 6,请使用:

postgresql-9.2-1004-jdbc4.jar 
postgresql-9.3-1100-jdbc4.jar 

对于 java 7,请使用:

postgresql-9.2-1004-jdbc41.jar 
postgresql-9.3-1100-jdbc41.jar 

答案 2

解决方案是使用为 JDK 6 编译的数据库驱动程序的副本。

似乎您的应用程序代码没有问题,因为您的构建更改有效。(特别是对合规性级别的更改。我不认为将JDK添加到(常规)构建路径会有什么不同。

但是,当然,这对数据库驱动程序没有任何影响...因为你没有编译它。


但是,根据下载页面,postgresql-9.2-1002.jdbc4应该与Java 6和7兼容。所以也许你已经从其他地方得到了JAR...或者通过使用 Java 7 目标从源代码编译。

更新 - 我可以确认下载站点上的 JAR 有一个驱动程序类,其字节码版本是 50.0 而不是 51.0。我建议您从那里下载并使用新的副本。


推荐