2

我想在我的 Java 项目中使用 H2 数据库,但不幸的是我不能使用任何外部.jar.class文件。(这是一个我无法控制的构建系统,我只能向它提交文件,这很愚蠢。)所以我想简单地下载 H2 Java 源并将所有这些 Java 包和 Java 文件直接添加到我的项目源文件夹中.

但是,在这样做之后,我在 Eclipse 中遇到了 H2 代码库中的一些 Java 文件的几个构建错误。例如,文件“org.h2.jdbc.JdbcStatement”有以下错误:“JdbcStatement 类型必须实现继承的抽象方法 Wrapper.unwrap(Class)”。还有其他几个错误。

所以我的问题是:我怎样才能或应该正确地将 H2 源文件添加到我的 Java 项目中?

4

1 回答 1

2

H2 的源 jar 文件在 Maven 存储库中可用,如docs 的下载部分所述。当前版本是:

http://repo2.maven.org/maven2/com/h2database/h2/1.3.166/h2-1.3.166-sources.jar

但是,您可能必须将 H2 的源代码“切换”到目标 Java 版本。(这是必需的,因为源代码不能同时用于 Java 5 和 Java 6 - 例如 Java 6 中的 JDBC API 必须支持该方法ResultSet.updateNClob(int columnIndex, NClob x),但该接口NClob在 Java 5 中不可用。 ) 这就是为什么你得到异常“JdbcStatement 类型必须实现继承的抽象方法 Wrapper.unwrap(Class)”的原因。

要切换源代码,可以使用H2 的构建脚本,也可以使用 find / replace 自己:启用 Java 6,将源代码中的字符串/*## Java 1.6 ##替换为。//## Java 1.6 ##

于 2012-05-11T05:10:18.240 回答