Java示例:如何执行进程并读取输出
下面是一个例子,演示如何执行一个进程(类似于在命令行下键入命令),读取进程执行的输出,并根据进程的返回值判断是否执行成功。一般来说,进程返回 0 表示执行成功,其他值表示失败。
/**
* 示例:执行进程并返回结果
*/
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示例:如何执行进程并读取输出相关推荐
- java dumpstack_Java获取执行进程的dump文件及获取Java stack
转发自https://blog.csdn.net/MCC_MCC_MCC/article/details/80623156 1.Windows/Linux环境下查看Java进程ID方法 使用Java自 ...
- java process 中断_从Java运行外部程序,读取输出,允许中断
以下是我想要做的一个例子: ProcessBuilder pb = new ProcessBuilder(args); pb.redirectErrorStream(true); Process pr ...
- 解决Spring的java项目打包后执行出现“无法读取方案文档...“、“原因为 1) 无法找到文档; 2) 无法读取文档; 3) 文档的根元素不是...”问题
解决Spring的java项目打包后执行出现"无法读取方案文档..."."原因为 1) 无法找到文档; 2) 无法读取文档; 3) 文档的根元素不是..."问题 ...
- 如何用Java做玫瑰花数_c语言如何输出玫瑰花数?(代码示例)
玫瑰花数又称"四叶玫瑰数",是指四位数各位上的数字的四次方之和等于本身的数. 例如:1634就是一个玫瑰花数1*1*1*1=16*6*6*6=12963*3*3*3=814*4*4 ...
- java无阻塞执行脚本,JAVA调用Shell脚本-及阻塞的解决方法
JAVA调用Shell脚本--及阻塞的解决办法 用java调用shell,使用 Process p=Runtime.getRuntime().exec(String[] cmd); Runtime.e ...
- Java并发编程:进程和线程之由来
2019独角兽企业重金招聘Python工程师标准>>> Java多线程基础:进程和线程之由来 在前面,已经介绍了Java的基础知识,现在我们来讨论一点稍微难一点的问题:Java并发编 ...
- JAVA 文件编译执行与虚拟机(JVM)简单介绍
详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcytpo3 java程序的内存分配 JAVA 文件编译执行与虚拟机(JVM)介绍 ...
- java 示例_功能Java示例 第5部分–将I / O移到外部
java 示例 这是称为" Functional Java by Example"的系列文章的第5部分. 在上一部分中,我们停止了对文档的变异,并返回了数据的副本. 现在,我们需要 ...
- java io 文件路径_如何从Java项目中的相对路径读取文件? java.io.File找不到指定的路径...
如何从Java项目中的相对路径读取文件? java.io.File找不到指定的路径 我有一个包含2个包的项目: ListStopWords.txt ListStopWords.txt 在包(2)中我有 ...
最新文章
- 必读!53个Python经典面试题详解
- 和对象一起运动更快乐!看完这篇正经研究,找对象的理由又多了一个
- KS001 基于Springboot机票预订系统
- [转载] Intention scheduling for BDI agent systems
- HDOJ 4704 Sum 规律 欧拉定理
- 19.12 添加自定义监控项目 19.13/19.14 配置邮件告警 19.15 测试告警 19.16 不发邮件的问题处理...
- 摇杆怎么映射到键盘_[评测]YAMAHA PSRSX900:雅马哈升级幅度最大的高端编曲键盘键盘中国原创评测...
- python算法系列资料集(三)
- 基于Spring Security的认证方式_实现授权功能_Spring Security OAuth2.0认证授权---springcloud工作笔记120
- html 遮罩层在底部,底部弹出遮罩层.html
- Python是最好的编程语言,Locust是最好的压测工具,不服来辩!
- Android APK反编译详解 .
- CF618F Double Knapsack
- 基于MDK编译器 STM32与12864液晶显示程序 和电路连接
- vue组件库和组件文档生成
- 【Linux实验】Linux操作基础
- Linux命令详解之 cat
- 什么专业可以留学计算机动画,美国留学计算机动画专业怎么样?
- django腾讯企业邮箱发送邮件配置
- ffmpeg js转换音频_微信FFMPEG 扩展转换音频格式
热门文章
- 正态分布的概率密度函数python_python绘制正态分布及三大抽样分布的概率密度图像...
- java反射方法_java反射之方法反射的基本操作方法
- 字体在ppt中可以整体替换吗_制作PPT必备的6个技巧,个个让人相见恨晚!你确定不来学一学?...
- 版本差异_终极版!三星Note20系列在真机再曝光,不同版本差异在这几点
- oracle的解析計劃,Oracle中获取执行计划的几种方法分析
- css使两个盒子并列_前端学习CSS
- css flex布局 padding,css三栏布局的三种实现方式(圣杯布局、双飞翼布局、Flex布局)...
- 登陆模板_曝北京国安克星将登陆中超,3年进84球,可成中超新政引援模板
- mysql获取ddl的语句,获取数据库或SHEME的DDL语句
- 模型房推荐_艺术生意大利留学,关于费用开销和专业推荐,这些详情要看