从 Ant / 命令行关闭 HSQLDB

Posted

技术标签:

【中文标题】从 Ant / 命令行关闭 HSQLDB【英文标题】:HSQLDB shutdown from Ant / command-line 【发布时间】:2011-09-08 14:33:04 【问题描述】:

我正在尝试编写一个 Ant (1.8.2) 脚本来从命令行关闭 HSQLDB (2.1.0) - 基本上我需要能够从 Windows 批处理文件中关闭 HSQLDB - 在网上搜索后,似乎没有内置的命令行方式可以做到这一点 - 如果我错了,请纠正我。

我已经使用随附的批处理文件 runServer.bat 启动了数据库。

这是我的 ant 文件(shutdown.xml):

<project>

<target name="hsqldb-stop">
  <sql
    classpath="C:\programs\hsqldb\hsqldb-2.1.0\hsqldb\lib"
    driver="org.hsqldb.jdbcDriver"
    url="jdbc:hsqldb:hsql://localhost:9001"
    userid="sa" password=""
    autocommit="true">SHUTDOWN</sql>
</target>

</project>

classpath 是我拥有C:\programs\hsqldb\hsqldb-2.1.0\hsqldb\lib\hsqldb.jar 文件的位置。 所有其他细节都是我从 Java 访问数据库时使用的那些细节,它们确实在那里工作。

当我运行它时,我得到:

>ant -buildfile shutdown.xml
Buildfile: shutdown.xml

BUILD SUCCESSFUL
Total time: 0 seconds

但是数据库没有被关闭。它的外壳仍然打开。 你能看出这里有什么问题吗?

Ant SQL task

谢谢!

【问题讨论】:

您是否尝试过ant -verbose -buildfile shutdown.xml hsqldb-stop 明确命名目标并显示反馈。 谢谢,这条评论很有帮助。正如您所建议的,我已将目标名称 hsqldb-stop 明确添加到命令中。另外,我必须在命令路径中明确声明 jar 文件,即classpath="C:\programs\hsqldb\hsqldb-2.1.0\hsqldb\lib\hsqldb.jar"。现在它起作用了。你能告诉我为什么我必须这样做吗?我认为 Ant 脚本在没有任何特定目标的情况下运行,只需运行它们可以的任何目标?另外,我认为类路径只给出了包含罐子的目录,而不是实际的罐子。 【参考方案1】:

最好明确命名目标,因为稍后您可能会添加额外的目标。您可以使用 -verbose 选项显示反馈以进行调试。

ant -verbose -buildfile shutdown.xml hsqldb-stop

由于 OP 发现 jar 文件名必须包含在命令路径中:

classpath="C:\programs\hsqldb\hsqldb-2.1.0\hsqldb\lib\hsqldb.jar"

java 命令中的类路径是目录或 jar / zip 名称的集合。 jar 和 zip 文件的名称必须特别指定,因为它们是包含 *.class 文件的压缩“目录”。

【讨论】:

感谢您的解释!

以上是关于从 Ant / 命令行关闭 HSQLDB的主要内容,如果未能解决你的问题,请参考以下文章

如何从命令行停止 HSQLDB

命令行执行Ant构建Jmeter,一直报Java(TM) Platform SE binary 已停止工作

Jmeter命令行和ant的集成

Android环境搭建与通过命令行方式创建Android应用

从命令行构建 Eclipse Java 项目

如何使用 ant 命令行来选择我的自定义 build.xml