从Java执行时出现重影脚本错误

从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

我正在尝试使用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  -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程序运行时,错误流中没有返回值或任何内容。