【问题标题】:pdflatex and filenames with spaces in javajava中的pdflatex和带空格的文件名
【发布时间】:2015-05-19 13:15:15
【问题描述】:

我正在尝试使用 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);

我必须如何编写这样的命令才能使其工作? 谢谢 乔迪

【问题讨论】:

  • 您是否检查过以确保您的代码适用于没有空格的文件名?
  • 是的,不带空格的文件名可以“裸”或用引号括起来

标签: java filenames pdflatex


【解决方案1】:

我找到了解决办法:

而不是使用

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

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-12-07
    • 2011-07-18
    • 2011-04-27
    • 2012-01-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多