・経緯
windowsコマンドプロンプト上でant実行時に上記のエラーに遭遇
原因としてantコマンドではmakefileの生成などを行うスクリプトファイルをwindows上で動かせないというものでした。
そこでcygwin上で動かしてみたものの全く同様のエラーが発生
ただし、cygwin上でcvc3フォルダまで移動し、
./configure
/usr/bin/make
と実行すると動きました。
[コマンドと結果(一部抜粋)]
C:\Users\mar\Dropbox\js-symbolic-executor\js-symbolic-executor>ant
BUILD FAILED
C:\Users\mar\Dropbox\js-symbolic-executor\js-symbolic-executor\build.xml:105: Execute failed:
ava.io.IOException: Cannot run program ".\configure" (in directory "C:\Users\mar\Dropbox\js-s
bolic-executor\cvc3"): CreateProcess error=2, 指定されたファイルが見つかりません。
at java.lang.ProcessBuilder.start(ProcessBuilder.java:1051)
[ant実行対象のbuilt.xml]
<target name="configure-cvc3"
depends="check-config.status"
unless="config.status.present">
<property name="arith" value="gmp"/>
<exec dir="../cvc3" executable="./configure"> (←build.xml:105行目の実行できなかった部分です。)
<arg value="--enable-java"/>
<arg value="--enable-dynamic"/>
<arg value="--with-arith=${arith}"/>
</exec>
</target>
ant は、java のアプリケーションです。
cygwin の bash から ant を起動したときに、Windows の java が起動されています。
Windows の java は、exec のタスクを処理するときに、Windows の API を使います。
Windows の API は、コマンドプロンプトから起動したときと同じように、実行できるファイルをファイルの拡張子で判断します。
.exe や .cmd 、.bat のようなファイルじゃないと、起動できません。
なので、configure のように拡張子がないスクリプトは、Windows 版の java からでは、実行形式のファイルと認識されないのでしょう。
cygwin の bash では、unix と同じような判断で実行できるかどうかを判定しているので、拡張子がない configure も実行できます。
とてもよくわかりました。
2014/11/16 19:52:05解答いただき本当にありがとうございます!!!!!!!!!!!!!!!!