2011-12-05 15 views
5

Cevabı aramayı denedim ama hiçbiri benim için çalışmıyor.Mac'te Java'da 'pdflatex' komutu nasıl çalıştırılır

Mac'imde java uygulamasından terminalde pdflatex çalıştırmaya çalışıyorum. Terminal'de

i yazarsanız:

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

benim Firefox tarayıcısı yahoo.co.uk açar

veya

pdflatex x.tex 

o ise dosyayı

işler benim Java kodu Ben türü:

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

o

veya

pdflatex x.tex 

bir hata alıyorum benim Firefox tarayıcısı yahoo.co.uk açılır. İşte
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); 
    } 
} 

hata var: Burada

Kod var

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

başka görevinden bir çözüm olduğu gibi JProc denedi, ama yine de benzer bir hata var:

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

Komut satırında hangi pdflatex seçeneğinin basıldığını, ardından pdflatex'in yerine Java kodunun tam adıyla yazdırılmaya çalışın. – alf

+0

Teşekkürler @alf! İşe yaradı! ama şimdi oluşturulan pdf dosyasını açmak istiyorum. Pdflatex'i nasıl çağırırım VE bir seferde ortaya çıkan pdf dosyasını açalım? –

+0

Bunu yaptım - Bir toplu iş dosyası yazdım ve bunu yaptım. Yardım ettiğin için teşekkür ederim! :) –

cevap

2

için teşekkürler @alf:

yazdırma which pdflatex ve sonuçtaki tam yolu kullanarak mükemmel çalışır.

İlgili konular