23

使用 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,但即便如此我也遇到了同样的问题。我该如何解决这个问题?

4

8 回答 8

20

对于 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 
于 2013-12-18T12:41:58.780 回答
17

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

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

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


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

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

于 2013-04-15T16:01:41.697 回答
9

如果您使用的是 maven,则中央存储库上的9.2-1002-jdbc4 版本已使用 1.7 目标编译。使用以前的版本,直到它被修复。

于 2013-04-30T12:42:01.987 回答
6

似乎已经使用最新的构建 ID 1003 解决了这个问题:

<dependency>
    <groupId>org.postgresql</groupId>
    <artifactId>postgresql</artifactId>
    <version>9.2-1003-jdbc4</version>
</dependency>
于 2013-10-03T12:05:55.213 回答
1

最好的方法是安装你的应用程序编译的更高版本的java,并假设如果我有使用Jre 1.6编译的应用程序,那么我需要1.6或更高版本的Jre 1.6,你有一件事是

或者

只需编译您的 Class 文件,我的意思是您的 application.java 文件,默认 Jre 您可以使用 java 和 Just Run 在同一文件上运行。

或第三个选项。

下载该 JRE 并将该 JRE 版本安装在您的计算机中。

于 2014-07-23T09:56:28.013 回答
0

我遇到了这个问题,也遇到了加载 JDBC 驱动程序的 ClassNotFoundException 问题。解决方案是从http://jdbc.postgresql.org/download.html#jdbcselection获取正确版本的 postgres jar 。如果您使用的是 Maven,请相应地添加依赖项的版本。

于 2014-02-20T12:20:02.223 回答
0

将与 Java 6 不兼容的 Postgres 驱动程序换成对 Java 7 友好的替代版本(如大多数其他答案所推荐的)的替代方法是让 Heroku 使用 Java 7 编译和运行您的应用程序。如您所说,如果您使用 JDK 7 进行开发,这可能有助于避免其他不兼容问题。

为此,请按照Heroku Devcenter 上的这些说明进行操作。这是一个摘要:

  1. system.properties在您的应用程序的基本目录中创建一个名为的文件。
  2. 将属性添加java.runtime.version=1.7到文件中,即:

    java.runtime.version=1.7
    
  3. 提交system.properties文件并推送到 Heroku。

于 2014-08-15T18:22:08.340 回答
0

有同样的问题

在这个页面上 - http://jdbc.postgresql.org/download.html

部分 - 当前版本

有关 jvm 版本和 postgres jdbc 驱动程序的详细信息帮助我弄清楚了。

于 2014-10-07T01:29:53.303 回答