Я пытаюсь запустить исполняемый файл C ++ из Java 1.8, используя ProcessBuilder в Linux. Исполняемый файл принимает два имени файла в качестве параметров, которые считываются для дальнейшей обработки. Код Java выглядит следующим образом:
public static void main(String args[]){
String rootDir = "/home/rtuk/qw_simp/";
ProcessBuilder process = new ProcessBuilder(rootDir + "qw_simple", "Photo1.jpg","Photo2.jpg");
process.directory(new File(rootDir));
Process p = process.start();
int err=p.waitFor();
InputStream is = p.getErrorStream();
InputStreamReader isr = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isr);
String line;
while ((line = br.readLine()) != null) {
System.out.println(line);
}
}
Однако исполняемый файл C ++ не может найти файлы, которые передаются как параметры и ошибки, указывающие, что файлы не найдены.
В чем может быть проблема здесь? Я попытался явно установить абсолютный путь для обоих аргументов, но это также не сработало.
Задача ещё не решена.
Других решений пока нет …