Runtime和Process
private  void runByshcommand(String command) {
         try {
             System.out.println("开始执行命令.....");
             Process process =null;
             process = Runtime.getRuntime().exec(command);
             //不管是输出流还是错误流,都容易造成阻塞,造成死循环。建议另外弄个线程,这样不会对主程序造成影响。
             InputStream pro_in=process.getInputStream();//得到终端窗口中输出的信息
             InputStream pro_err=process.getErrorStream();//得到终端窗口中输出的错误流
             new getOutputStreamThread(pro_in,"NORMAL").run();//调用start()方法,则会通过JVM找到run()方法
             new getOutputStreamThread(pro_err,"ERROR").run();
             process.waitFor();
             // 销毁子进程
             process.destroy();
             process = null;
             System.out.println("命令执行成功");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    public static class getOutputStreamThread extends Thread{
        InputStream ins;
        String print_type;
        public getOutputStreamThread(InputStream is,String print_type){
            this.ins=is;
            this.print_type=print_type;
        }
        public void run(){
            String szstr="";
            BufferedReader in=new BufferedReader(new InputStreamReader(ins));
            try {
                while((szstr=in.readLine())!=null){
                    System.out.println(print_type+":"+szstr);
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
Runtime和Process的更多相关文章
- ProcessBuilder 、Runtime和Process 的区别
		
1.版本原因 ProcessBuilder是从java1.5加进来的,而exec系列方法是从1.0开始就有的,后续版本不断的重载这个方法,到了1.5已经有6个之多. 2.ProcessBuilder. ...
 - java: Runtime和Process调用本机程序
		
java: Runtime和Process调用本机程序 调用纸牌程序,Process用来销毁程序 import java.io.IOException; public class RunTimeDem ...
 - [转]Java中使用Runtime和Process类运行外部程序
		
帖子1: 使用Runtime.getRuntime().exec()方法可以在java程序里运行外部程序. 1. exec(String command) 2. exec(String comma ...
 - 3.3常用类(java学习笔记)Runtime与Process
		
一.Runtime 我们来看下文档中对Runtime的说明: 每一个java程序都有一个属于Runtime类的实例,它允许程序连接到程序运行环境. 当前runtime可以用getRuntime()方法 ...
 - Java进程Runtime、Process、ProcessBuilder调用外部程序
		
原文地址:https://blog.csdn.net/c315838651/article/details/72085739 通过Java执行系统命令,与cmd中或者终端上一样执行shell命令,最典 ...
 - 2.Java基础之Runtime对象
		
毕向东老师Java基础学习笔记——Runtime对象 今天学习Java中的Runtime对象后,感觉这个对象对我们主要有以下几点用处. 1.使用java代码打开本地可执行文件,比如打开一个计算器. 2 ...
 - 深入研究java.lang.Runtime类
		
一.概述 Runtime类封装了运行时的环境.每个 Java 应用程序都有一个 Runtime 类实例,使应用程序能够与其运行的环境相连接. 一般不能实例化一个Runtime对象, ...
 - 浅析Java.lang.Runtime类
		
一.概述 Runtime类封装了运行时的环境.每个 Java 应用程序都有一个 Runtime 类实例,使应用程序能够与其运行的环境相连接. 一般不能实例化一个Runtime对象, ...
 - Runtime.exec() sucks!!!!
		
自己项目中使用到了 Runtime rt = Runtime.getRuntime(); Process p = rt.exec("query session");p.waitFo ...
 
随机推荐
- Thinking in Java Chapter 14
			
From Thinking in Java 4th Edition RTTI(Run-Time Type Information),运行时类型信息,使得你可以在程序运行时发现和使用类型信息.对RTTI ...
 - Git 常用命令备份
			
继上次保存了git 多个key共存配置(https://www.cnblogs.com/xiaochangwei/p/9155195.html)后,今天把常见的git命令备份下(最近我的云笔记账号经常 ...
 - 使用MultipartFile上传文件
			
转载地址:https://www.cnblogs.com/lunaticcoder/p/9813483.html(具体的看这个这个大佬的博客) 依赖包: <!-- 上传文件依赖组件 --> ...
 - vue 项目记录.路飞学城(一)
			
前情提要: 通过vue 搭建路飞学城记录 一:项目分析 二:项目搭建 1:创建项目 vue init webpack luffy 2:初始化项目 清除默认的HelloWorld.vue组件和APP. ...
 - django 模型关系
			
模型关系 关系数据库的威力体现在表之间的相互关联,Django提供了三种最常见的数据库关系:多对一 (many-to-one),多对多(many-to-many),一对一(one-to-one) 多对 ...
 - [Objective-C语言教程]预处理器(18)
			
Objective-C预处理器不是编译器的一部分,而是编译过程中的一个单独步骤. 简单来说,Objective-C预处理器只是一个文本替换工具,它指示编译器在实际编译之前进行必要的预处理. 我们将Ob ...
 - undefined 和 undeclared 的区别
			
var a; //undefined b; // b is not defined 区别:在变量作用域中已经申明但没有赋值的变量(如 a),是undefined.相反,在变量作用域中没有申明过的变量, ...
 - 我从来不理解 JavaScript 闭包,直到有人这样向我解释它...
			
正如标题所述,JavaScript 闭包对我来说一直有点神秘,看过很多闭包的文章,在工作使用过闭包,有时甚至在项目中使用闭包,但我确实是这是在使用闭包的知识. 最近看国外的一些文章,终于,有人用于一种 ...
 - 关于resin的illegal utf8 encoding at (190)解决方式
			
最近在项目开发中,出现了编码异常,内容如下:- illegal utf8 encoding at (190)com.caucho.jsp.JspParseException: illegal utf8 ...
 - docker 容器时间和系统时间不一致
			
docker cp /etc/localtime 容器名:/etc/localtime cp /etc/localtime 24fe94504424:/etc/localtime date -s 09 ...