Вызов точечного процесса GraphViz с использованием Javas Runtime.getRuntime().exec() и передача имени файла не работает,JAVA

Программисты JAVA общаются здесь
Anonymous
Вызов точечного процесса GraphViz с использованием Javas Runtime.getRuntime().exec() и передача имени файла не работает,

Сообщение Anonymous »

По какой-то причине всякий раз, когда я выполняю Graphviz dot с помощью Java Runtime.getRuntime().exec() двумя разными способами (один повторяет ввод, другой передает имя файла) - работает только эхо. >
Например. это не работает (генерирует 0 байт)
Runtime.getRuntime().exec(new String[]{"bash", "-c", "dot -Tsvg FILE_NAME.dot"});

Но это так:
Runtime.getRuntime().exec(new String[]{"bash", "-c", "echo 'digraph { A -> B }' | dot -Tsvg"});

вот остальная часть моего кода:
Process process = Runtime.getRuntime().exec(new String[]{"bash", "-c", "echo 'digraph { A -> B }' | dot -Tsvg"});
InputStream inputStream = process.getInputStream();
BufferedInputStream bufferedInputStream = new BufferedInputStream(inputStream);
OutputStream outputStream = new FileOutputStream("out.txt");

byte[] buffer = new byte[8 * 1024];
int bytesRead;
while ((bytesRead = bufferedInputStream.read(buffer)) != -1) {
outputStream.write(buffer, 0, bytesRead);
}
IOUtils.closeQuietly(bufferedInputStream);
IOUtils.closeQuietly(outputStream);


Подробнее здесь: https://stackoverflow.com/questions/787 ... nd-passing

Вернуться в «JAVA»