2011-09-08 71 views
2

我想写一个Ant(1.8.2)脚本从命令行关闭HSQLDB(2.1.0) - 基本上我需要能够从Windows关闭HSQLDB批处理文件 - 搜索网络后,似乎没有内置的命令行方式 - 请纠正我,如果我错了。HSQLDB关闭从Ant /命令行

我已经开始使用已发货的批处理文件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

谢谢!

+1

您是否尝试过'ant -verbose -buildfile shutdown.xml hsqldb-stop'来明确指定目标并显示反馈。 – fredt

+0

谢谢,这个评论是有帮助的。正如你所建议的那样,我明确地将目标名称“hsqldb-stop”添加到命令中。另外,我必须在命令路径中明确声明jar文件,即'classpath =“C:\ programs \ hsqldb \ hsqldb-2.1.0 \ hsqldb \ lib \ hsqldb.jar”'。现在它可以工作。你能告诉我为什么我必须这样做吗?我认为Ant脚本运行时没有任何特定的目标,只需运行任何目标即可?另外,我认为classpath只给出包含罐子的目录,而不是实际的罐子。 – rapt

回答

2

明确指定目标名称会更好,因为您稍后可能会添加额外的目标。您可以使用-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文件的压缩“目录”。

+0

谢谢你的解释! – rapt