pdflatex和java中带空格的文件名

时间:2015-05-19 13:15:15

标签: java filenames pdflatex

我正在尝试使用Runtime.exec()在java应用程序中将带有空格的文件名传递给pdflatex。

此命令在终端上执行良好

pdflatex --halt-on-error "/home/jody/test 1.tex"

即。生成pdf,返回码为0。

当像这样传递给exec()时,相同的命令将不起作用(即返回代码1而不是0;没有创建pdf)

myRuntime.exec("pdflatex --halt-on-error \"/home/jody/test 1.tex\"", null, null);

我如何编写这样的命令才能让它工作? 谢谢    乔迪

1 个答案:

答案 0 :(得分:1)

我找到了解决方案:

而不是使用

public Process exec(String command,
                    String[] envp,
                    File dir)

整个调用包含在字符串'command'中, 我现在用

public Process exec(String[] cmdarray,
                    String[] envp,
                    File dir)

其中调用被拆分为包含命令(即“pdflatex”)的数组'cmdarray'及其作为元素的参数。这样,pdflatex将空间感染的文件名理解为单个单词,并且可以完成其工作。