я бегу CMD (командная строка) и работает мой пакетный файл из Java так:Java: Запуск CMD команды (несколько команд с несколькими аргументами сразу)
final String cmd = "cmd /c C: && dir && cd C:\MyApp\Maxi && dir && C:\MayApp\Maxi\deploy.bat";
try {
Process process = Runtime.getRuntime().exec(cmd);
final InputStream in = process.getInputStream();
int ch;
while((ch = in.read()) != -1) {
System.out.print((char)ch);
}
} catch (IOException e) {
System.out.println("IOException on CMD executing statement");
e.printStackTrace();
}
Он успешно работает, но я модифицировал пакетный файл и добавил некоторые аргументы, так что я должен передать имя пакетного файла, так что я попытался это: (я посылаю «NAME1» в качестве аргумента)
final String cmd = "cmd /c C: && dir && cd C:\MyApp\Maxi && dir && C:\MayApp\Maxi\deploy.bat Name1";
try {
Process process = Runtime.getRuntime().exec(cmd);
final InputStream in = process.getInputStream();
int ch;
while((ch = in.read()) != -1) {
System.out.print((char)ch);
}
} catch (IOException e) {
System.out.println("IOException on CMD executing statement");
e.printStackTrace();
}
но не работает сейчас, и команда не казнены. Я получаю только команду «dir».
Может ли кто-нибудь помочь?
Примечание: Команды успешно выполняются на CMD, но не работают с java.
потому что имя каталога параметризуется переменной в моем коде, и мне нужно переместить курсор в конкретный каталог, прежде чем вызывать мой пакетный файл. Считаете ли вы, что это будет работать так? –
Во-первых, вам определенно не нужен DIR. Во-вторых, дайте двойные кавычки команде. например && "C: \\ MayApp \\ Maxi \\ deploy.bat" "Name1" –
Я использую только "DIR", чтобы проверить, перемещается ли курсор и есть ли выход. И спасибо, что вы сейчас работаете :) –