如果螞蟻是一個.exe我會說你的代碼應該工作。但我懷疑螞蟻是一個批處理文件,並且錯誤發生在螞蟻腳本中。
我根據您的錯誤消息得出的結論 - 具體來說是以下部分:""==""
。該錯誤消息是批解析錯誤,我看不到您的代碼如何生成這些字符。所以我想螞蟻一定是導致問題的批處理腳本。
我懷疑ant.bat的頂部有@echo off
,所以你沒有看到實際發生故障的線路。
無法訪問ant.bat腳本,我無法確切地診斷出故障,我也無法猜測如何解決它。
更新 - 準確發現問題
我發現ant.bat副本在線。
它的代碼中使用以下行:
if "%ANT_HOME%"=="" set ANT_HOME=%DEFAULT_ANT_HOME%
你ANT_HOME的定義包括封閉的報價,所以該代碼試圖執行
if ""C:/Program Files/apache-ant-1.8.4""=="" set ANT_HOME=%DEFAULT_ANT_HOME%
的空間沒有報價,而你有你的錯誤。
所有你需要做什麼來解決一切都是從ANT_HOME的定義中刪除引號,然後添加引號到您的呼叫聲明:
set "ANT_HOME=C:/Program Files/apache-ant-1.8.4"
call "%ANT_HOME%/bin/ant" -f ../config/common.xml start_db
正向斜槓並不總是可靠的內部文件分隔符視窗。請參閱Why does the cmd.exe shell on Windows fail with paths using a forward-slash ('/'') path separator?。
更好地使用反斜線。
set "ANT_HOME=C:\Program Files\apache-ant-1.8.4"
call "%ANT_HOME%\bin\ant" -f ..\config\common.xml start_db
我想你的示例輸出中有一個不需要的下劃線 - 'Program_Files'應該讀取'Program Files'。 – dbenham