使用测试应用程序找出生产应用程序和hsqldb的问题。
如果我在hclipse中使用hsqldb.jar文件编译测试应用程序作为外部jar,则程序可以正常工作。但是,如果我的JRE系统库中只有jar文件,则会尝试从9.0之前的客户端连接数据库中的错误。
这两个文件完全相同。唯一的区别是一个被添加为外部jar而另一个只是在类路径中。生产应用程序构建时,它使用类路径到同一文件并生成相同的9.0之前的错误。
答案 0 :(得分:1)
您要使用的jar是HSQLDB版本2.0 jar。还有第二个HSQLDB jar,它是版本1.8,位于你的预期jar之前的类路径中。
这是一个类路径问题。您应该能够通过使用java -verbose或其他调试选项找到第二个jar(1.8)的位置以及它如何进入类路径。
[已添加]您可以在应用程序中调试此步骤的另一个步骤是在连接到数据库之前打印字段org.hsqldb.persist.HsqlDatabaseProperties.THIS_FULL_VERSION的值。这将打印用作客户端的jar版本。连接成功意味着客户端和服务器jar是相同的版本。
服务器实例在启动时将其版本打印到控制台。
我还建议从http://hsqldb.org/support/页面使用最新的HSQLDB快照jar。
答案 1 :(得分:0)
通过将hsqldb.jar移动到类路径中首次声明来排除问题。