現在、LaTeXソースコードを含むテキストファイルを自動的に生成するJavaプロジェクトに取り組んでいます。これらのファイルは、既知のディレクトリにあるハードドライブに書き込まれます。直接LaTeXのソースをpdfにコンパイルする代わりに、私はRuntime.getRunTime().exec()
を使いたいと思う。ディレクトリを変更してLaTeXソースをコンパイルするためのJavaランタイムコマンド
私はBasicTeXをダウンロードしてインストールしました。私はそれが適切に働いていることを知っています。私は新しいターミナルウィンドウで以下を呼び出すことができ、pdfはエラーなしで正しく生成されます。
Kyles-MacBook-Pro:~ kylekrol$ cd Documents/folder/Report
Kyles-MacBook-Pro:Report kylekrol$ pdflatex latexDocument.txt
だから私のプログラムは、PDFファイルをコンパイルするために閉じ前に、私は単純に次のコードを使用してみました:私はこれを実行すると
private static void compileLatexMac(String path) {
String s = null;
try {
System.out.println("cd " + path.substring(0, path.length() - 1) + " && pdflatex latexDocument.txt");
Process p = Runtime.getRuntime().exec("cd " + path.substring(0, path.length() - 1) + " && pdflatex latexDocument.txt");
BufferedReader stdInput = new BufferedReader(new InputStreamReader(p.getInputStream()));
BufferedReader stdError = new BufferedReader(new InputStreamReader(p.getErrorStream()));
System.out.println("outputs:");
while ((s = stdInput.readLine()) != null) {
System.out.println(s);
}
System.out.println("errors:");
while ((s = stdError.readLine()) != null) {
System.out.println(s);
}
} catch (Exception e) {
e.printStackTrace();
System.exit(-1);
}
}
を私は取り戻すすべてがPDFせずに次の通りであるか、またはこのようなログファイル。
cd /Users/kylekrol/Documents/folder/Report && pdflatex latexDocument.txt
outputs:
errors:
私はこれを作るためにか、なぜ機能していない本当にわからない - 私はターミナルからcd /Users/kylekrol/Documents/folder/Report && pdflatex latexDocument.txt
を呼び出すことができ、特にので、必要に応じてそれが実行されます。
誰かが私がここで欠けているものを指摘することができればそれはすばらしくなるだろう。ありがとう!
私はそれをダブルクリックしてjarファイルを実行するときに3つの引数exec()
コマンドを使用して、より問題に実行してしまいました。これを修正するには、pdflatex
という余分な引数を使用し、絶対パスのみを使用する次のコマンドを呼び出します。
Runtime.getRuntime().exec("pdflatex -output-directory=" + path.substring(0, path.length() - 1) + " " + path + "latexDocument.txt");
したがって、私は '&& 'やその他の演算子をどのように編集すればよいですか?私はこの種のものに非常に精通して申し訳ありません。 –
@ k.krol.27、[この回答](https://stackoverflow.com/a/4884715/391161)を見てください。 – merlin2011
私は数分前に笑を見つけました。ありがとう、私は今働いている! –