java - 如何将完整的 H2 源代码包含到 Java 项目中?

标签 java h2

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

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

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

最佳答案

H2 的源 jar 文件可在 Maven 存储库中找到,如 download section of the 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),但接口(interface) NClob 在 Java 5 中不可用。)这就是您收到异常“类型 JdbcStatement 必须实现继承的抽象方法 Wrapper.unwrap(Class )”。

要切换源代码,可以使用build script of H2 ,或者您可以自己使用查找/替换:要启用 Java 6,请将字符串 /*## Java 1.6 ## 替换为 //## Java 1.6 ##源代码。

关于java - 如何将完整的 H2 源代码包含到 Java 项目中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10542654/

相关文章:

java - 如何控制 Grails 3 Gradle 项目中的 H2 驱动程序版本?

java - 如何从java中的对象列表中提取数组

java - 用于更改 Android 应用布局背景颜色的切换按钮

java - SSL套接字帮助-javax.net.ssl.SSLHandshakeException : Received fatal alert: certificate_unknown

java - 将值添加到类型为 class 的 ArrayList 元素

auto-increment - 在H2数据库中,auto_increment字段增加了32?

java - 使用内存中 h2 的空日期平台之间的 dbunit 行为不一致

java - 即使我使用 DB_CLOSE_DELAY=-1,H2 内存数据库也会报告找不到表

java - 创建全局可访问的子电路/信号 (Logisim)

h2 - "Timeout trying to lock table"更改表