Проблема с запуском команды в java - PullRequest
0 голосов
/ 15 января 2020

Я пытаюсь использовать терминал из java для преобразования текстового файла в pdf:

...
        Process pr = Runtime.getRuntime().exec("pdflatex docu.tex") ;
        BufferedReader br = new BufferedReader(new InputStreamReader(pr.getInputStream()));
        String line = "";
        while ((line = br.readLine()) != null) {
            System.out.println(line);
        }
...

, и я получаю эту ошибку:

Exception in thread "main" java.io.IOException: Cannot run program "pdflatex": error=2, No such file or directory

У меня есть документы. текстовый файл в том же пакете, что и выше. Когда я ввожу команду непосредственно в терминал, она работает нормально, и создается PDF.

Спасибо

Ответы [ 2 ]

2 голосов
/ 15 января 2020

Вам нужно указать, что Runtime # exe c будет использовать для выполнения вашей команды, вы можете использовать bash примерно так, это должно заставить вашу команду выполняться на ma c & linux (unix на основе) системы с bash доступны.

  final String[] executionStrings = new String[]{"/bin/bash", "-c", "pdflatex docu.tex"};
  Process p = Runtime.getRuntime().exec(executionStrings);
0 голосов
/ 15 января 2020

Оказывается, все, что мне нужно было сделать, это найти явный путь к pdflatex (набрав «which pdflatex» в терминале), как сказал @PM 77-1, и заменить его на «pdflatex

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...