从 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的主要内容,如果未能解决你的问题,请参考以下文章
命令行执行Ant构建Jmeter,一直报Java(TM) Platform SE binary 已停止工作