8

Antスクリプトに次のスニペットがあります。それはうまく実行されます:

<exec executable="C:\test\foo\programName.exe" />

しかし、次のようにディレクトリを設定して実行しようとすると、次のようになります。

<exec executable="programName.exe"
  dir="C:\test\foo\" />

私は得る:

実行に失敗しました:java.io.IOException:プログラム "programName.exe"を実行できません(ディレクトリ "C:\ test \ foo"内):CreateProcess error = 2、システムは指定されたファイルを見つけることができません

助けてください!ディレクトリを個別に指定すると機能しないのはなぜですか?

4

3 に答える 3

5

resolveexecutable属性を追加します。

<exec executable="programName.exe" 
  resolveexecutable="true"
  dir="C:\test\foo\" />

resolveexecutable この属性が true の場合、実行可能ファイルの名前は最初にプロジェクトの basedir に対して解決され、それが存在しない場合は実行ディレクトリ (指定されている場合) に対して解決されます。Unix システムで、ユーザーのパスでのコマンドの実行のみを許可する場合は、これを false に設定します。Ant 1.6 以降 いいえ、デフォルトは false

于 2009-05-23T02:15:22.313 に答える
3

私はこれに固執することになりました:

<exec executable="${basedir}\myexefile.exe}" />
于 2009-05-28T12:22:41.037 に答える
1

これを試して:

<property name="prog.dir" value="C:/test/foo" />
<exec executable="${prog.dir}/programName.exe"/>

プログラムを実行するディレクトリがビルドパスにある必要があるようです。

于 2009-05-22T22:05:09.777 に答える