升级后 HSQLDB 命令行关闭不再起作用

问题描述

在 Ubuntu 18.04 上,我能够使用以下单行关闭服务器模式下正在运行的 HsqlDB 实例:

java -cp $CLAsspATH:/usr/share/java/hsqldbutil.jar:/usr/share/java/hsqldb.jar "org.hsqldb.cmdline.sqlTool" --inlineRc=url=jdbc:hsqldb:hsql://localhost/$DB_NAME,user=SA,password= --sql="SHUTDOWN;"

升级到 Ubuntu 20.04(使用 HsqlDB 2.4.1 和 HsqlDB Utils 2.5.0)后,失败并显示以下错误

Error: Could not find or load main class org.hsqldb.cmdline.sqlTool
Caused by: java.lang.classNotFoundException: org.hsqldb.cmdline.sqlTool

确实,我再也无法在两个 JAR 中的任何一个中找到 org.hsqldb.cmdline.sqlTool,也没有任何暗示该功能消失的地方。

docs 提到了 sqltool.jar,但我在系统上的任何地方都找不到该文件

sqlTool 类去哪儿了?或者我还能如何从 shell 脚本关闭正在运行的 HsqlDB 实例?

解决方法

没有正式发布的名为 hsqldbutil.jar 的 jar。该 jar 有一个 Ant 和 Gradle 构建选项,其中包含 GUI 客户端。

通过 http://hsqldb.org 上的下载链接从 SourceForge 下载 hsqldb zip 包

zip 包的/lib 目录包含hsqldb.jar 和sqltool.jar。在您的 Java 命令中使用这些 jar。这也可以确保您使用来自同一发行版的 jar,因为混合不同的发行版将无法正常工作。