Выполнение с помощью Ant работает с абсолютным путем, но не с относительным путем
-
23-08-2019 - |
Вопрос
У меня есть следующий фрагмент в моем 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"/>
Похоже, что каталог, из которого вы запускаете программу, должен находиться в вашем пути сборки.