I tried to find the answer, but no one works for me.
I am trying to run pdflatex in a terminal from my java application on my Mac.
In the terminal, if I print:
open -a FireFox http://www.yahoo.co.uk
it opens yahoo.co.uk in my firefox browser
or
pdflatex x.tex
processes the file
In my Java code, I type:
open -a FireFox http://www.yahoo.co.uk'
it opens yahoo.co.uk in my firefox browser
or
pdflatex x.tex
I get an error message.
Here is the code:
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()));
System.out.println("Here is the standard output of the command:\n");
while ((s = stdInput.readLine()) != null) {
System.out.println(s);
}
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 what I know: ");
e.printStackTrace();
System.exit(-1);
}
}
Here's the error:
- :
java.io.IOException: "pdflatex": = 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: error = 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: error = 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