Java编程思想:进程控制
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Test {
public static void main(String[] args) {
OSExecuteDemo.test();
}
}
/*
程序运行过程中将可能产生两种错误:
1.普通的导致异常的错误
2.进程自身的执行的过程中产生的错误
*/
class OSExecuteException extends RuntimeException {
public OSExecuteException(String why) {
super(why);
}
}
/*
要想运行一个程序,需要向OSExecute.Command()传递一个command字符串,它与
在控制台上运行该程序所键入的命令相同。这个命令被传递给
java.lang.ProcessBuilder构造器(它要求这个命令作为一个String对象序列被
传递),然后所产生的ProcessBuilder对象被启动。
*/
class OSExecute {
public static void command(String command) {
boolean err = false;
try{
Process process = new ProcessBuilder(command.split(" ")).start();
//输出程序运行的结果
BufferedReader results = new BufferedReader(
new InputStreamReader(process.getInputStream()));
String str;
while ((str = results.readLine()) != null) {
System.out.println(str);
//System.out.println(new String(str.getBytes("GBK"),"utf-8"));
}
//输出程序运行中产生的错误
BufferedReader errors = new BufferedReader(
new InputStreamReader(process.getErrorStream()));
while ((str = errors.readLine()) != null) {
System.out.println(str);
err=true;
}
} catch (Exception e) {
if(!command.startsWith("CMD /C")){
command("CMD /C " +command);
}else {
throw new RuntimeException();
}
}
if(err){
throw new OSExecuteException("Errors executeing "+command);
}
}
}
class OSExecuteDemo {
public static void test() {
// OSExecute.command("javap OSExecuteDemo");
OSExecute.command("java");
}
}
Java编程思想:进程控制的更多相关文章
- Java编程思想之四控制执行流程
程序必须再执行过程中控制它的世界,并做出选择.在Java中,你要使用执行控制语句来做出选择. 4.1true和false 所有条件语句都利用条件表达式的真或假来决定执行路径. Java不允许使用数字作 ...
- 《Java编程思想》读书笔记
前言 这个月一直没更新,就是一直在读这本<Java编程思想>,这本书可以在Java业界被传神的一本书,无论谁谈起这本书都说好,不管这个人是否真的读过这本书,都说啊,这本书很好.然后再看这边 ...
- JAVA编程思想读书笔记(五)--多线程
接上篇JAVA编程思想读书笔记(四)--对象的克隆 No1: daemon Thread(守护线程) 参考http://blog.csdn.net/pony_maggie/article/detail ...
- 24.JAVA编程思想——违例差错控制
24.JAVA编程思想--违例差错控制 Java 的基本原理就是"形式错误的代码不会执行". 与C++类似,捕获错误最理想的是在编译期间,最好在试图执行程序曾经.然而.并不是全部错 ...
- 《Java编程思想》读书笔记(三)
前言:三年之前就买了<Java编程思想>这本书,但是到现在为止都还没有好好看过这本书,这次希望能够坚持通读完整本书并整理好自己的读书笔记,上一篇文章是记录的第十一章到第十六章的内容,这一次 ...
- 《Java编程思想》读书笔记(五)
前言:本文是<Java编程思想>读书笔记系列的最后一章,本章的内容很多,需要细读慢慢去理解,文中的示例最好在自己电脑上多运行几次,相关示例完整代码放在码云上了,码云地址:https://g ...
- #Java编程思想笔记(一)——static
Java编程思想笔记(一)--static 看<Java编程思想>已经有一段时间了,一直以来都把笔记做在印象笔记上,今天开始写博客来记录. 第一篇笔记来写static关键字. static ...
- Java编程思想重点笔记(Java开发必看)
Java编程思想重点笔记(Java开发必看) Java编程思想,Java学习必读经典,不管是初学者还是大牛都值得一读,这里总结书中的重点知识,这些知识不仅经常出现在各大知名公司的笔试面试过程中,而 ...
- Java编程思想——初始化与清理
PS:最近一直忙于项目开发..所以一直没有写博客..趁着空闲期间来一发.. 学习内容: 1.初始化 2.清理 1.初始化 虽然自己的Java基础还是比较良好的..但是在解读编程思想的时候还是发现了 ...
- java编程思想
Java编程思想,Java学习必读经典,不管是初学者还是大牛都值得一读,这里总结书中的重点知识,这些知识不仅经常出现在各大知名公司的笔试面试过程中,而且在大型项目开发中也是常用的知识,既有简单的概念理 ...
随机推荐
- Win8Metro(C#)数字图像处理--2.11图像锐化
原文:Win8Metro(C#)数字图像处理--2.11图像锐化 [函数名称] 图像锐化函数SharpeningProcess(WriteableBitmap src,double sharpe ...
- VS2010调试X86汇编程序
今天突然无聊了一下,想起之前想的用VS来调试汇编程序.之前只是想了一下,没有去做,好吧,今天搜索一下,找到了一个教程,相当的详细具体,我喜欢 按照http://blog.csdn.net/jinson ...
- Play Framework + ReactiveMongo 环境搭建
Play!是一个full-stack(全栈的)Java/Scala Web应用框架,包括一个简单的无状态MVC模型,具有Hibernate的对象持续,一个基于Groovy的模板引擎,以及建立一个现代W ...
- qt在windows下的udp通信(最简单)
qt编程:windows下的udp通信 本文博客链接:http://blog.csdn.net/jdh99,作者:jdh,转载请注明. 环境: 主机:win7 开发环境:qt 功能: 用udp进行收发 ...
- <iOS小技巧> 返回上级目录操作Goback()方法
Goback()方法功能:返回上一级界面,通过判断 popViewControllerAnimated 类型是否为空,来判断是present还是pop出来,然后直接做了releaseSelf操作: - ...
- java.lang.ClassNotFoundException: org.jaxen.JaxenException 解决方法
当遇到如下exception时, May 11, 2017 4:23:17 PM org.apache.catalina.core.StandardWrapperValve invoke SEVERE ...
- 在无界面centos7上部署jdk和tomcat
1.安装xshell6 2.创建服务器连接,输入用户名和密码 3.输入 sudo su -root 获取root权限 4.输入 cd /usr/local 进入local文件夹 5.输入 wget - ...
- java设计模式-原型(prototype)
有时候创建对象是需要耗费很多资源,但是每个对象之间又有大量的重复.我们可以选择在创建好一个对象后,以之作为模板克隆出其他对象,稍作修改,即可用于其他地方. 需要实现Cloneable接口,重写clon ...
- 3017C语言_文件
第七章 文件 7.1 C语言文件的概念 7.1.1 文件的概念 在此之前,所有的输入和输出只涉及到键盘和显示器.在运行C程序时,我们通过键盘输入数据并借助显示器把程序的运算结果显示出来.但是,计算 ...
- CrossOver for Mac v18.5 中文破解版下载-可以安装Windows软件
CrossOver for Mac v18.5 中文破解版: http://h5ip.cn/kADD Crossover Mac 破解版是Mac 和 Windows 系统之间的兼容工具.使 Mac 操 ...