Выполнение с помощью Ant работает с абсолютным путем, но не с относительным путем

StackOverflow https://stackoverflow.com/questions/900143

Вопрос

У меня есть следующий фрагмент в моем Ant-скрипте.Он работает просто отлично:

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

Но затем, когда я пытаюсь выполнить это, установив каталог, вот так:

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

Я получаю:

Выполнить не удалось:java.io.IOException Исключение:Не удается запустить программу "programName.exe" (в каталоге "C: est\foo"):Ошибка CreateProcess=2, система не удается найти указанный файл

Пожалуйста, помогите!Почему это не работает, когда каталог указан отдельно?

Это было полезно?

Решение 2

В итоге я остановился на этом:

<exec executable="${basedir}\myexefile.exe}" />

Другие советы

Добавьте разрешимоеисполнимо атрибут:

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

разрешимоеисполнимо Когда этот атрибут имеет значение true, имя исполняемого файла сначала преобразуется в каталог на основе проекта, а если он существует не существует, в каталог выполнения , если он указан.В системах Unix , если вы хотите разрешить выполнение команд только в пути пользователя , установите для этого значение false.начиная с Ant 1.6 Нет, значение по умолчанию равно false

Попробуй это:

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

Похоже, что каталог, из которого вы запускаете программу, должен находиться в вашем пути сборки.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top