antが.exeの場合、コードは機能するはずです。しかし、antはバッチファイルであり、antスクリプト内でエラーが発生していると思われます。
私はあなたのエラーメッセージ、特にその次の部分に基づいて結論を出します""==""
。エラーメッセージはバッチ解析エラーであり、コードがこれらの文字をどのように生成できるかわかりません。したがって、antは問題の原因となっているバッチスクリプトである必要があると思います。
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の定義から引用符を削除してから、CALLステートメントに引用符を追加することだけです。
set "ANT_HOME=C:/Program Files/apache-ant-1.8.4"
call "%ANT_HOME%/bin/ant" -f ../config/common.xml start_db
スラッシュは、Windows内のフォルダー区切り文字として常に信頼できるとは限りません。Windowsのcmd.exeシェルがスラッシュ('/'')パス区切り文字を使用したパスで失敗するのはなぜですか?を参照してください。。
バックスラッシュを使用することをお勧めします。
set "ANT_HOME=C:\Program Files\apache-ant-1.8.4"
call "%ANT_HOME%\bin\ant" -f ..\config\common.xml start_db