下面是一个例子,演示如何执行一个进程(类似于在命令行下键入命令),读取进程执行的输出,并根据进程的返回值判断是否执行成功。一般来说,进程返回 0 表示执行成功,其他值表示失败。

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();
            }
        }
    }
}

相关:
Java运行系统命令行并获取返回值

Java示例:如何执行进程并读取输出相关推荐

  1. java dumpstack_Java获取执行进程的dump文件及获取Java stack

    转发自https://blog.csdn.net/MCC_MCC_MCC/article/details/80623156 1.Windows/Linux环境下查看Java进程ID方法 使用Java自 ...

  2. java process 中断_从Java运行外部程序,读取输出,允许中断

    以下是我想要做的一个例子: ProcessBuilder pb = new ProcessBuilder(args); pb.redirectErrorStream(true); Process pr ...

  3. 解决Spring的java项目打包后执行出现“无法读取方案文档...“、“原因为 1) 无法找到文档; 2) 无法读取文档; 3) 文档的根元素不是...”问题

    解决Spring的java项目打包后执行出现"无法读取方案文档..."."原因为 1) 无法找到文档; 2) 无法读取文档; 3) 文档的根元素不是..."问题 ...

  4. 如何用Java做玫瑰花数_c语言如何输出玫瑰花数?(代码示例)

    玫瑰花数又称"四叶玫瑰数",是指四位数各位上的数字的四次方之和等于本身的数. 例如:1634就是一个玫瑰花数1*1*1*1=16*6*6*6=12963*3*3*3=814*4*4 ...

  5. java无阻塞执行脚本,JAVA调用Shell脚本-及阻塞的解决方法

    JAVA调用Shell脚本--及阻塞的解决办法 用java调用shell,使用 Process p=Runtime.getRuntime().exec(String[] cmd); Runtime.e ...

  6. Java并发编程:进程和线程之由来

    2019独角兽企业重金招聘Python工程师标准>>> Java多线程基础:进程和线程之由来 在前面,已经介绍了Java的基础知识,现在我们来讨论一点稍微难一点的问题:Java并发编 ...

  7. JAVA 文件编译执行与虚拟机(JVM)简单介绍

    详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcytpo3 java程序的内存分配 JAVA 文件编译执行与虚拟机(JVM)介绍 ...

  8. java 示例_功能Java示例 第5部分–将I / O移到外部

    java 示例 这是称为" Functional Java by Example"的系列文章的第5部分. 在上一部分中,我们停止了对文档的变异,并返回了数据的副本. 现在,我们需要 ...

  9. java io 文件路径_如何从Java项目中的相对路径读取文件? java.io.File找不到指定的路径...

    如何从Java项目中的相对路径读取文件? java.io.File找不到指定的路径 我有一个包含2个包的项目: ListStopWords.txt ListStopWords.txt 在包(2)中我有 ...

最新文章

  1. 必读!53个Python经典面试题详解
  2. 和对象一起运动更快乐!看完这篇正经研究,找对象的理由又多了一个
  3. KS001 基于Springboot机票预订系统
  4. [转载] Intention scheduling for BDI agent systems
  5. HDOJ 4704 Sum 规律 欧拉定理
  6. 19.12 添加自定义监控项目 19.13/19.14 配置邮件告警 19.15 测试告警 19.16 不发邮件的问题处理...
  7. 摇杆怎么映射到键盘_[评测]YAMAHA PSRSX900:雅马哈升级幅度最大的高端编曲键盘键盘中国原创评测...
  8. python算法系列资料集(三)
  9. 基于Spring Security的认证方式_实现授权功能_Spring Security OAuth2.0认证授权---springcloud工作笔记120
  10. html 遮罩层在底部,底部弹出遮罩层.html
  11. Python是最好的编程语言,Locust是最好的压测工具,不服来辩!
  12. Android APK反编译详解 .
  13. CF618F Double Knapsack
  14. 基于MDK编译器 STM32与12864液晶显示程序 和电路连接
  15. vue组件库和组件文档生成
  16. 【Linux实验】Linux操作基础
  17. Linux命令详解之 cat
  18. 什么专业可以留学计算机动画,美国留学计算机动画专业怎么样?
  19. django腾讯企业邮箱发送邮件配置
  20. ffmpeg js转换音频_微信FFMPEG 扩展转换音频格式

热门文章

  1. 正态分布的概率密度函数python_python绘制正态分布及三大抽样分布的概率密度图像...
  2. java反射方法_java反射之方法反射的基本操作方法
  3. 字体在ppt中可以整体替换吗_制作PPT必备的6个技巧,个个让人相见恨晚!你确定不来学一学?...
  4. 版本差异_终极版!三星Note20系列在真机再曝光,不同版本差异在这几点
  5. oracle的解析計劃,Oracle中获取执行计划的几种方法分析
  6. css使两个盒子并列_前端学习CSS
  7. css flex布局 padding,css三栏布局的三种实现方式(圣杯布局、双飞翼布局、Flex布局)...
  8. 登陆模板_曝北京国安克星将登陆中超,3年进84球,可成中超新政引援模板
  9. mysql获取ddl的语句,获取数据库或SHEME的DDL语句
  10. 模型房推荐_艺术生意大利留学,关于费用开销和专业推荐,这些详情要看