Java执行外部程序并返回结果详解编程语言

import java.io.*; 
 
/** 
 * 示例:执行进程并返回结果 
 */ 
public class ProcessExecutor { 
 
    public static final int SUCCESS = 0;            // 表示程序执行成功 
 
    public static final String COMMAND = "java.exe -version";    // 要执行的语句 
 
    public static final String SUCCESS_MESSAGE = "程序执行成功!"; 
 
    public static final String ERROR_MESSAGE = "程序执行出错:"; 
 
    public static void main(String[] args) throws Exception { 
 
        // 执行程序 
        Process process = Runtime.getRuntime().exec(COMMAND); 
 
        // 打印程序输出 
        readProcessOutput(process); 
 
        // 等待程序执行结束并输出状态 
        int exitCode = process.waitFor(); 
 
        if (exitCode == SUCCESS) { 
            System.out.println(SUCCESS_MESSAGE); 
        } else { 
            System.err.println(ERROR_MESSAGE + exitCode); 
        } 
    } 
 
    /** 
     * 打印进程输出 
     * 
     * @param process 进程 
     */ 
    private static void readProcessOutput(final Process process) { 
        // 将进程的正常输出在 System.out 中打印,进程的错误输出在 System.err 中打印 
        read(process.getInputStream(), System.out); 
        read(process.getErrorStream(), System.err); 
    } 
 
    // 读取输入流 
    private static void read(InputStream inputStream, PrintStream out) { 
        try { 
            BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream)); 
 
            String line; 
            while ((line = reader.readLine()) != null) { 
                out.println(line); 
            } 
 
        } catch (IOException e) { 
            e.printStackTrace(); 
        } finally { 
 
            try { 
                inputStream.close(); 
            } catch (IOException e) { 
                e.printStackTrace(); 
            } 
        } 
    } 
}

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/10772.html

(0)
上一篇 2021年7月19日
下一篇 2021年7月19日

相关推荐

发表回复

登录后才能评论