Я пытался найти ответ, но никто не работает для меня.
Я пытаюсь запустить pdflatex в терминале из моего приложения java на моем Mac.
В терминале, еслия набираю:
open -a FireFox http://www.yahoo.co.uk
он открывает yahoo.co.uk в моем браузере FireFox
или
pdflatex x.tex
он обрабатывает файл
ВЯ набираю свой код Java:
open -a FireFox http://www.yahoo.co.uk'
, он открывает yahoo.co.uk в моем браузере FireFox
или
pdflatex x.tex
Я получаю ошибку.
Вот код:
public static void main(String args[]) {
String s = null;
try {
Process p = Runtime.getRuntime().exec("pdflatex x.tex");
BufferedReader stdInput = new BufferedReader(new
InputStreamReader(p.getInputStream()));
BufferedReader stdError = new BufferedReader(new
InputStreamReader(p.getErrorStream()));
// read the output from the command
System.out.println("Here is the standard output of the command:\n");
while ((s = stdInput.readLine()) != null) {
System.out.println(s);
}
// read any errors from the attempted command
System.out.println("Here is the standard error of the command (if any):\n");
while ((s = stdError.readLine()) != null) {
System.out.println(s);
}
System.exit(0);
} catch (Exception e) {
System.out.println("exception happened - here's what I know: ");
e.printStackTrace();
System.exit(-1);
}
}
Вот ошибка:
возникла исключительная ситуация - вот что я знаю:
java.io.IOException: не удается запустить программу "pdflatex ": error = 2, нет такого файла или каталога в
java.lang.ProcessBuilder.start (ProcessBuilder.java:460) в
java.lang.Runtime.exec (Runtime.java:593) в
java.lang.Runtime.exec (Runtime.java:431) в
java.lang.Runtime.exec (Runtime.java:328) в
test.JavaRunCommand.main (JavaRunCommand.java:28)
Вызвано: java.io.IOException: errили = 2, нет такого файла или каталога в
java.lang.UNIXProcess.forkAndExec (собственный метод) в
java.lang.UNIXProcess. (UNIXProcess.java:53) в
java.lang.ProcessImpl.start (ProcessImpl.java:91) в
java.lang.ProcessBuilder.start (ProcessBuilder.java:453) ... еще 4
Я пробовал JProc как этобыло решением из другого поста, но оно все еще имеет похожую ошибку:
Исключение в теме "main" org.buildobjects.process.StartupException:
Не удалось запустить процесс 'pdflatex x.tex».
в org.buildobjects.process.Proc. (Proc.java:46) в
org.buildobjects.process.ProcBuilder.run (ProcBuilder.java:111) в
test.JavaRunCommand.main (JavaRunCommand).java: 20)
Причина: java.io.IOException:
Невозможно запустить программу "pdflatex x.tex": ошибка = 2, такого файла или каталога нет в
java.lang.ProcessBuilder.start(ProcessBuilder.java:460) в
java.lang.Runtime.exec (Runtime.java:593) в
org.buildobjects.process.Proc. (Proc.java:43) ... еще 2
Причина: java.io.IOException: ошибка = 2, нет такого файла или каталога в
java.lang.UNIXProcess.forkAndExec (собственный метод) в
java.lang.UNIXProcess. (UNIXProcess.java:53) в
java.lang.ProcessImpl.start (ProcessImpl.java:91) в
java.lang.ProcessBuilder.start (ProcessBuilder.java:453) ... еще 4