2013-06-07 2 views
0

Название в основном говорит все. То, что я был в состоянии сделать до сих пор, путем поиска вокруг в Интернете, является следующее:Как открыть командную строку, сменить каталог и выполнить команду с использованием кода Java (Windows)

Runtime rt = Runtime.getRuntime(); 

try { 
    Process proc = rt.exec("cmd /c start cmd.exe /K \"cd " + locaction); 
} 
catch (Exception e) { 
    //... 
} 

где location является Строковое представление каталога Я хотел бы перейти. Не уверен, что выше это лучший способ сделать это, но в любом случае, как я могу запустить определенную команду из этого каталога (скажем, например, там есть приложение, и я хочу, чтобы он запускался)? Благодарю.

+1

Любая конкретная причина, почему вы хотите запустить из консоли? – fge

+0

Вызов каталога изменений не работает должным образом при использовании экземпляра 'Runtime'. Вы должны указать каталог как часть имени программы. –

+0

@fge: Я создаю исполняемый jar, который создает каталог, помещает там определенный файл и затем запускает скрипт из этого места. Сценарий лучше всего запускать с помощью простой команды из командной строки. –

ответ

3

Если вы просто хотите, чтобы запустить приложение с конкретной рабочей директории, самый простой способ заключается в использовании ProcessBuilder:

ProcessBuilder pb = new ProcessBuilder(executable, arguments, if, any); 
pb.directory(theWorkingDirectory); 
pb.start(); 
+0

спасибо, это очень удобный и сжатый код. –

Смежные вопросы