Я обычно разрабатываю свой проект с помощью этих двух команд из командной строки (DOS)
G:\> cd c:
C:\> cd c:\my\directory\where\ant\exists
C:\my\directory\where\ant\exists> ant -Mysystem
...
.....
build successful
Что, Если я хочу сделать вышеупомянутое от отличного вместо этого? отличный имеет execute()
метод, но следующее не работает на меня:
def cd_command = "cd c:"
def proc = cd_command.execute()
proc.waitFor()
это дает ошибку:
Caught: java.io.IOException: Cannot run program "cd": CreateProcess error=2, The
system cannot find the file specified
at ant_groovy.run(ant_groovy.groovy:2)
Согласно этому потоку (вторая часть), «cd c:». Execute ()
пытается запустить программу с именем cd
, которая не программа, но встроенная команда оболочки.
Временным решением было бы изменить каталог, как показано ниже (не проверено):
System.setProperty ("user.dir", "c:")
"your command".execute(null, /the/dir/which/you/want/to/run/it/from)
должно сделать то, что вы хотели.
Или более явно, я думаю, решение Бинила должно выглядеть так:
"your command".execute(null, new File("/the/dir/which/you/want/to/run/it/from"))