it-swarm.com.ru

Выполнить внешнюю программу в java

Я попытался создать приложение, которое вызывает внешнюю программу, и мне нужно передать два параметра. Это не дает никаких ошибок. Program.exe, написанный на c ++, делает снимок и изменяет содержимое txt файла. Java программа работает, но ничего не делает

Вот мой пример кода

    String[] params = new String [3];
    params[0] = "C:\\Users\\user\\Desktop\\program.exe";
    params[1] = "C:\\Users\\user\\Desktop\\images.jpg";
    params[2] = "C:\\Users\\user\\Desktop\\images2.txt";
    Runtime.getRuntime().exec(params);
34
sqtd

позаимствовал это позорно у здесь

Process process = new ProcessBuilder("C:\\PathToExe\\MyExe.exe","param1","param2").start();
InputStream is = process.getInputStream();
InputStreamReader isr = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isr);
String line;

System.out.printf("Output of running %s is:", Arrays.toString(args));

while ((line = br.readLine()) != null) {
  System.out.println(line);
}

Дополнительная информация здесь

Другие вопросы о том, как передавать команды здесь и здесь

60
Steven

Это неправильно. Вот как вы должны использовать Runtime.exec(). Вы также можете попробовать его более современного кузена, ProcessBuilder :

Альтернативы Java Runtime.getRuntime (). Exec ()

14
duffymo