从Java执行时出现重影脚本错误
我正在尝试使用Runtime.getRuntime().exec(command)从Java程序执行ghostscript命令 我用来生成PDF/A文件的命令是:从Java执行时出现重影脚本错误,java,ghostscript,Java,Ghostscript,我正在尝试使用Runtime.getRuntime().exec(command)从Java程序执行ghostscript命令 我用来生成PDF/A文件的命令是: command = "/usr/local/bin/gs -q -dPDFA=2 -dBATCH -dNOPAUSE -sColorConversionStrategy=RGB -sDEVICE=pdfwrite -dPSFitPage -dFastWebView=true -dDOPDFMARKS -sOutpu
command = "/usr/local/bin/gs -q -dPDFA=2 -dBATCH -dNOPAUSE -sColorConversionStrategy=RGB -sDEVICE=pdfwrite -dPSFitPage -dFastWebView=true -dDOPDFMARKS -sOutputFile=" + mergedPDFFile + " " + pdfaDefFile + " " + inputPDFFile + " " + pdfMarksFile;
当输入的PDF文件大小小于1MB时,它工作得非常好。但是,当输入PDF文件大小大于1 MB时,不会生成输出
我用Java编写的代码是:
private void executeCommand(String command) {
Process p = null;
try {
p = Runtime.getRuntime().exec(new String[]{"bash", "-c", command});
String s1 = null;
BufferedReader reader = new BufferedReader(new InputStreamReader(p.getInputStream()));
while ((s1= reader.readLine()) != null) {
slf4jLogger.info("+++++++++++++++++++++++++++++" + s1);
}
String s = null;
BufferedReader stdError = new BufferedReader(new InputStreamReader(p.getErrorStream()));
while ((s = stdError.readLine()) != null) {
slf4jLogger.info("***********************" + s);
}
p.waitFor();
int returnValue = p.exitValue();
slf4jLogger.info("RETURN VALUE : " + returnValue);
} catch (Throwable e) {
slf4jLogger.error("ERROR: ********************" + e.toString(), e);
} finally {
slf4jLogger.info("END MY PROCESS:");
if (p != null) {
p.destroy();
}
}
非常感谢您的帮助。我想如果您直接在shell中运行该命令,它会正常工作,不会出现任何错误?你的程序的日志输出是什么?没错。从shell运行时,它工作正常。当我以大于1MB的文件大小从java程序运行时,在错误流中没有返回值或任何内容?你的程序的日志输出是什么?没错。从shell运行时,它工作正常。当我以大于1MB的文件大小从java程序运行时,错误流中没有返回值或任何内容。