哪个JDK要编译commons-dbcp-1.2.2?(JDK5/6/7的问题)



当我试图用JDK6/7编译commons-dbcp-1.2.2时,我得到了这个错误:

org.apache.commons.dbcp.BasicDataSource不是抽象的,也没有覆盖java.sql.Wrapper 中的抽象方法isWrapperFor(java.lang.Class)

这是因为commons-dbcp-1.2.2是在JDK6之前编写的,当时java.sql.Wrapper没有isWrapperFor方法。

所以我安装了JDK5,但我收到了这样的消息(可能是因为所有Java7编译的JAR):

java.lang.UnsupportedClassVersionError:.class文件中的版本号错误

如何解决这个问题?

我终于编译了commons-dbcp-1.2.2,下面是我的操作:

  1. 下载修订版558600(因为有人为它写了正确的补丁。它几乎是1.2.2,有一些修复)

    svn checkout -r 558600 http://svn.apache.org/repos/asf/commons/proper/dbcp/trunk commons-dbcp
    
  2. 下载此补丁(补丁说明)和补丁:

    wget https://issues.apache.org/jira/secure/attachment/12362389/patch.txt
    patch -p0 <patch.txt
    

build.properties.sample复制到build.properties,下载文件中描述的jar,然后更改为适当的路径。

使用OpenJDK 7构建。