博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Process与ProcessImpl类源码解析
阅读量:2394 次
发布时间:2019-05-10

本文共 554 字,大约阅读时间需要 1 分钟。

因为Runtime里的exec方法与这个类关联密切,所以这里对这个类进行了分析。

之前在文章《》里已经简单说了下这个类的用途,可以想象成一个外部应用程序的代理对象。
该类是个抽象类,目前java里只有一个实现类ProcessImpl类。
Process抽象类里大致提供以下一个抽象方法:
几个输入/输出流
waitFor方法,用来等待外部程序运行完成(是一个阻塞的方法)
destory方法,就是主动关闭外部应用程序
还有一个就是获取应用程序的返回值,简单地说,就是应用程序是否是正常终止
在ProcessImpl里就具体实现了这些方法。
首先是ProcessImpl只能被ProcessBuilder.start()这个方法进行创建。
其次几个主要的方法,已经本地化,如图:
这几个方法中,我常用的是waitFor方法,如果能够正常调用外部应用程序,那么就将阻塞,等外部程序运行完后,返回值是0;反之不能正常调用外部应用程序,将不会阻塞,直接返回值是2。
create方法是被ProcessBuilder.start()调用的,也就是创建了subprocess。
destory就是java主动去销毁这个subprocess。
目前我在使用过程当中,只能本地调用。如果想直接进行远程调用,无法正常运行。

转载地址:http://jvzob.baihongyu.com/

你可能感兴趣的文章
SpringBoot--整合JDBC
查看>>
SpringBoot--整合Druid&配置数据源监控
查看>>
JPA--4种主键生成策略
查看>>
JPA--单表操作二、(条件查询、统计查询、排序查询、分组查询、分页查询)
查看>>
JPA--SpringData JPA环境搭建及简单操作
查看>>
JPA--SpringDataJPA的四种查询方式
查看>>
JPA--SpringDataJpa之Specifications动态查询
查看>>
JPA--SpringDataJPA一对多关联、级联操作
查看>>
JPA--SpringDataJPA多对多关联、级联操作
查看>>
JPA--SpringDataJPA对象导航查询及加载策略
查看>>
SpringBoot--启动流程、原理
查看>>
SpringBoot--整合JPA
查看>>
Git--创建仓库/创建新项目、操作文件
查看>>
Git--查看历史记录、版本的前进和后退、找回删除文件
查看>>
Git--分支操作、合并分支、解决冲突
查看>>
Git--SSH登录
查看>>
Git--Eclipse操作、忽略文件、推送到远程库
查看>>
Git--Eclipse克隆工程操作(Oxygen、Kepler)、解决冲突
查看>>
Git--工作流、实例
查看>>
Git--IDEA配置
查看>>