記錄一次java使用processBuilder調用exe執行文件處理的代碼

ProcessBuilder 是jdk1.5以後的類,在這以前一直是直接用process。
具體區別和聯繫可以查看下方博客
https://honeypps.com/java/process-builder-quick-start/

該方法調用的是C#開發的一個exe,dll用來生成PDF文件,我們需要給該方法傳遞參數,我這裏path傳遞的是一個字符串,傳遞的信息是看你的exe需要。

public boolean generatePdfFromExe(String path) {
			String exePath="E:\\ITextSharpTest\\ITextSharpTest.exe";
            BufferedReader br=null;
            BufferedReader brError=null;

            try {
                //執行exe ,exePath可以爲字符串(exe存放路徑)也可爲數組
                log.info("執行exe文件!");
                ProcessBuilder pr= new ProcessBuilder(exePath,path);
			    process p=pr.start();
                String line = null;
                br = new BufferedReader(new InputStreamReader(p.getInputStream()));
                brError = new BufferedReader(new InputStreamReader(p.getErrorStream()));
                log.info("開始獲取子進程輸出流信息和錯誤流信息");
                while ((line = br.readLine()) != null  || (line = brError.readLine()) != null) {
                    //輸出exe輸出的信息以及錯誤信息
                    System.out.println(line);
                }
                log.info("調用exe方法完成");
            } catch (Exception e) {
                e.printStackTrace();
                log.info("調用exe生成PDF過程出現錯誤");
                log.info("錯誤信息爲:"+e.getMessage());
                return false;
            } finally {
                if (br != null) {
                    try {
                        br.close();
                        log.info("釋放輸出流!");
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                }
            }
            log.info("調用exe生成PDF成功!");
                return true;
        }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章