我正在编写一个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")(而不是直接运行batchfile)来强制执行,但这也没有效果。
有什么想法吗?