人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

cygwin上でもantが動かなかった理由を教えて下さい。

・経緯
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>

●質問者: ruzxa
●カテゴリ:コンピュータ
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● a-kuma3
ベストアンサー

ant は、java のアプリケーションです。
cygwin の bash から ant を起動したときに、Windows の java が起動されています。

Windows の java は、exec のタスクを処理するときに、Windows の API を使います。
Windows の API は、コマンドプロンプトから起動したときと同じように、実行できるファイルをファイルの拡張子で判断します。
.exe や .cmd 、.bat のようなファイルじゃないと、起動できません。
なので、configure のように拡張子がないスクリプトは、Windows 版の java からでは、実行形式のファイルと認識されないのでしょう。

cygwin の bash では、unix と同じような判断で実行できるかどうかを判定しているので、拡張子がない configure も実行できます。


ruzxaさんのコメント
とてもよくわかりました。 解答いただき本当にありがとうございます!!!!!!!!!!!!!!!!
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ