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