Tôi đã thử tìm kiếm câu trả lời nhưng không có câu trả lời nào đang hoạt động cho tôi.Cách chạy lệnh 'pdflatex' trong Java trên Mac
Tôi đang cố chạy pdflatex trong thiết bị đầu cuối từ ứng dụng java trên máy Mac của mình.
Trong hẻm nếu tôi gõ:
open -a FireFox http://www.yahoo.co.uk
nó mở yahoo.co.uk trong trình duyệt FireFox của tôi
hoặc
pdflatex x.tex
nó xử lý các tập tin
Trong tôi Mã Java tôi nhập:
open -a FireFox http://www.yahoo.co.uk'
nó mở yahoo.co.uk trong trình duyệt FireFox của tôi
hoặc
pdflatex x.tex
tôi nhận được một lỗi.
Đây là 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's what I know: ");
e.printStackTrace();
System.exit(-1);
}
}
Dưới đây là các lỗi:
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
Tôi đã thử JProc vì nó là một giải pháp từ bài khác, nhưng nó vẫn có một lỗi tương tự:
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
Thử in 'pdflatex' nào trong dòng lệnh, sau đó thay thế' pdflatex' trong mã Java bằng tên đầy đủ của nó. – alf
Cảm ơn @alf! Nó đã làm việc! nhưng bây giờ tôi muốn mở tập tin pdf được tạo ra. Làm cách nào để gọi pdflatex VÀ mở tệp pdf kết quả trong một lần? –
Tôi đã thực hiện nó - Tôi đã viết một tập tin thực thi và thực hiện điều đó. Cảm ơn bạn đã giúp đỡ! :) –