我试图使用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);
我如何编写这样的命令才能使其正常工作?
谢谢
乔迪
最佳答案
我找到了解决方案:
而不是使用
public Process exec(String command,
String[] envp,
File dir)
整个调用都包含在字符串“ command”中,
我现在用
public Process exec(String[] cmdarray,
String[] envp,
File dir)
该调用被拆分为一个数组“ cmdarray”,其中包含命令(即“ pdflatex”)及其参数作为元素。通过这种方式,pdflatex可以将占用空格的文件名理解为单个单词,并可以完成其工作。
关于java - pdflatex和文件名在Java中带有空格,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30326744/