2011-12-05 22 views
5

पर जावा में 'pdflatex' कमांड को कैसे चलाएं मैंने जवाब खोजने की कोशिश की है लेकिन कोई भी मेरे लिए काम नहीं कर रहा है।मैक

मैं अपने मैक पर अपने जावा एप्लिकेशन से टर्मिनल में पीडीएफएलएक्सएक्स चलाने की कोशिश कर रहा हूं।

टर्मिनल में अगर मैं टाइप करें:

open -a FireFox http://www.yahoo.co.uk 

यह मेरी फ़ायर्फ़ॉक्स ब्राउज़र में yahoo.co.uk खोलता

या

pdflatex x.tex 

यह फ़ाइल

प्रक्रियाओं में मेरी जावा कोड I टाइप:

open -a FireFox http://www.yahoo.co.uk' 

यह मेरी फ़ायर्फ़ॉक्स ब्राउज़र में yahoo.co.uk खोलता

या

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

यहाँ त्रुटि है:

exception happened - here's what I know:
java.io.IOException: Cannot run program "pdflatex": error=2, No such file or directory at
java.lang.ProcessBuilder.start(ProcessBuilder.java:460) at
java.lang.Runtime.exec(Runtime.java:593) at
java.lang.Runtime.exec(Runtime.java:431) at
java.lang.Runtime.exec(Runtime.java:328) at
test.JavaRunCommand.main(JavaRunCommand.java:28)
Caused by: java.io.IOException: error=2, No such file or directory at
java.lang.UNIXProcess.forkAndExec(Native Method) at
java.lang.UNIXProcess.(UNIXProcess.java:53) at
java.lang.ProcessImpl.start(ProcessImpl.java:91) at
java.lang.ProcessBuilder.start(ProcessBuilder.java:453) ... 4 more

मैं JProc की कोशिश की है के रूप में यह एक और पद से एक समाधान था, लेकिन यह अभी भी एक ऐसी ही त्रुटि है:

Exception in thread "main" org.buildobjects.process.StartupException:
Could not startup process 'pdflatex x.tex '.
at org.buildobjects.process.Proc.(Proc.java:46) at
org.buildobjects.process.ProcBuilder.run(ProcBuilder.java:111) at
test.JavaRunCommand.main(JavaRunCommand.java:20)
Caused by: java.io.IOException:
Cannot run program "pdflatex x.tex": error=2, No such file or directory at
java.lang.ProcessBuilder.start(ProcessBuilder.java:460) at
java.lang.Runtime.exec(Runtime.java:593) at
org.buildobjects.process.Proc.(Proc.java:43) ... 2 more
Caused by: java.io.IOException: error=2, No such file or directory at
java.lang.UNIXProcess.forkAndExec(Native Method) at
java.lang.UNIXProcess.(UNIXProcess.java:53) at
java.lang.ProcessImpl.start(ProcessImpl.java:91) at
java.lang.ProcessBuilder.start(ProcessBuilder.java:453) ... 4 more

+2

कमांड लाइन में 'pdflatex' को प्रिंट करने का प्रयास करें, फिर जावा कोड में' pdflatex' को अपने पूर्ण नाम से बदल दें। – alf

+0

धन्यवाद @ आधा! इसने काम कर दिया! लेकिन अब मैं उत्पन्न पीडीएफ फ़ाइल खोलना चाहता हूँ। मैं pdflatex को कैसे कॉल करूं और परिणामस्वरूप पीडीएफ फ़ाइल को एक बार में खोलूं? –

+0

मैंने इसे किया है - मैंने बैच फ़ाइल लिखी और उसे निष्पादित किया। आपकी सहायताके लिए धन्यवाद! :) –

उत्तर

2

@alf:

के लिए धन्यवाद

प्रिंटिंग which pdflatex और परिणामी पूर्ण पथ का उपयोग पूरी तरह से काम करता है।