How to run pdflatex command in Java on Mac

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()));

         // 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 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

+5
1

@alf:

which pdflatex .

+2

All Articles