我正在编写一个 Java 实用程序,它使用 DITA 工具包和 Apache FOP 执行批处理文件以生成 PDF。它通过使用 pdftk 为首页添加水印来完成。如果我在 Windows 中使用 Start>CMD 执行批处理文件,批处理文件中的这一行有效:
pdftk "%DITA_OUTPUT%book.pdf" multibackground C:\doc_build_system\watermark.pdf output "%DITA_OUTPUT%external.pdf" compress verbose
当我通过 Runtime.exec() 执行批处理文件时,同一行失败。
失败的原因是通过Java执行时PATH变量不完整。它应该有一个类似的条目:
C:\Program Files (x86)\PDFtk Server\bin\
...但事实并非如此。我试图通过调用 runtime.exec("cmd /c batchfile.bat") (而不是直接调用批处理文件)来强制通过 CMD 执行,但这也没有效果。
有任何想法吗?