2011-09-08 51 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