Java Process类的详解

前言:
今天用了下Java.lang.Process类,只是初步的学习,并没有深入实践,因为感觉它的用途并不是很大,偶尔才可能用上,如果要经常使用它的人可以自行参考JDk文档。
对Process类的简要说明:
Process类是一个抽象类,方法都是抽象的,它封装了一个进程,也就是一个可执行的程序 该类提供进程的输入、执行输出到进程、等待进程的完成和检查进程的退出状态及销毁进程的方法
ProcessBuilder.start()和Runtime.exec方法创建一个本机进程并返回Process子类的一个实例,该实例可以控制进程并获取相关的信息
其它的概要请参考JDK文档
下面就开始举几个简单的示例:
(1)执行简单的DOS命令,如打开一个记事本
package com.iwtxokhtd.other;
import java.io.IOException;
public class ProcessTest {
public static void main(String[] args) {
try {
Process proc=Runtime.getRuntime().exec("notepad");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
package com.iwtxokhtd.other;
import java.io.IOException;
public class ProcessTest {
public static void main(String[] args) {
try {
Process proc=Runtime.getRuntime().exec("notepad");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
(2)使用它的其它构造方法执行相关的命令,如下例:
package com.iwtxokhtd.other;
import java.io.IOException;
public class ProcessTest {
public static void main(String[] args) {
try {
String exeFullPathName="C:/Program Files/Internet Explorer/IEXPLORE.EXE";
String message="www.google.com";
String []cmd={exeFullPathName,message};
Process proc=Runtime.getRuntime().exec(cmd);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
package com.iwtxokhtd.other;
import java.io.IOException;
public class ProcessTest {
public static void main(String[] args) {
try {
String exeFullPathName="C:/Program Files/Internet Explorer/IEXPLORE.EXE";
String message="www.google.com";
String []cmd={exeFullPathName,message};
Process proc=Runtime.getRuntime().exec(cmd);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
执行上述命令可以打开Google网站
(3)列出系统正在运行的所有进程信息
package com.iwtxokhtd.other;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class ListAllProcessTest {
//列出所有的进程信息
public static void main(String[] args) {
BufferedReader br=null;
try {
Process proc=Runtime.getRuntime().exec("tasklist");
br=new BufferedReader(new InputStreamReader(proc.getInputStream()));
@SuppressWarnings("unused")
String line=null;
System.out.println("打印所有正在运行的进程信息");
while((line=br.readLine())!=null){
System.out.println(br.readLine());
}
} catch (IOException e) {
e.printStackTrace();
}finally{
if(br!=null){
try {
br.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
}
package com.iwtxokhtd.other;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class ListAllProcessTest {
//列出所有的进程信息
public static void main(String[] args) {
BufferedReader br=null;
try {
Process proc=Runtime.getRuntime().exec("tasklist");
br=new BufferedReader(new InputStreamReader(proc.getInputStream()));
@SuppressWarnings("unused")
String line=null;
System.out.println("打印所有正在运行的进程信息");
while((line=br.readLine())!=null){
System.out.println(br.readLine());
}
} catch (IOException e) {
e.printStackTrace();
}finally{
if(br!=null){
try {
br.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
}
(4)判断一个具体的进程是否正在运行,如下例:
package com.iwtxokhtd.other;
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class FindProcessExeTest
{
public static void main(String []args){
if(findProcess("QQ.exe")){
System.out.println("------判断指定的进程是否在运行------");
System.out.println("QQ.exe该进程正在运行!");
}else{
System.out.println("------判断指定的进程是否在运行------");
System.out.println("QQ.exe该进程没有在运行!");
}
}
public static boolean findProcess(String processName){
BufferedReader br=null;
try{
//下面这句是列出含有processName的进程图像名
Process proc=Runtime.getRuntime().exec("tasklist /FI /"IMAGENAME eq "+processName+"/"");
br=new BufferedReader(new InputStreamReader(proc.getInputStream()));
String line=null;
while((line=br.readLine())!=null){
//判断指定的进程是否在运行
if(line.contains(processName)){
return true;
}
}
return false;
}catch(Exception e){
e.printStackTrace();
return false;
}finally{
if(br!=null){
try{
br.close();
}catch(Exception ex){
}
}
}
}
}
package com.iwtxokhtd.other;
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class FindProcessExeTest
{
public static void main(String []args){
if(findProcess("QQ.exe")){
System.out.println("------判断指定的进程是否在运行------");
System.out.println("QQ.exe该进程正在运行!");
}else{
System.out.println("------判断指定的进程是否在运行------");
System.out.println("QQ.exe该进程没有在运行!");
}
}
public static boolean findProcess(String processName){
BufferedReader br=null;
try{
//下面这句是列出含有processName的进程图像名
Process proc=Runtime.getRuntime().exec("tasklist /FI /"IMAGENAME eq "+processName+"/"");
br=new BufferedReader(new InputStreamReader(proc.getInputStream()));
String line=null;
while((line=br.readLine())!=null){
//判断指定的进程是否在运行
if(line.contains(processName)){
return true;
}
}
return false;
}catch(Exception e){
e.printStackTrace();
return false;
}finally{
if(br!=null){
try{
br.close();
}catch(Exception ex){
}
}
}
}
}
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
# Java
# Process
# Process详解
# Process分析
# Java Process中waitFor()的问题详解
# Java超详细讲解多线程中的Process与Thread
# Java中Process类的使用与注意事项说明
# Java Process详解及实例
# Java获取Process子进程进程ID方法详解
# 正在运行
# 是一个
# 这句
# 的人
# 都是
# 几个
# 文档
# 也就
# 子类
# 用了
# 希望能
# 谢谢大家
# 本机
# 装了
# 创建一个
# 可执行
# 请参考
# 可以自行
# 就开始
# 抽象类
相关文章:
如何在云虚拟主机上快速搭建个人网站?
如何选择服务器才能高效搭建专属网站?
已有域名和空间,如何快速搭建网站?
简历在线制作网站免费,免费下载个人简历的网站是哪些?
如何访问已购建站主机并解决登录问题?
简单实现Android文件上传
教育培训网站制作流程,请问edu教育网站的域名怎么申请?
如何用搬瓦工VPS快速搭建个人网站?
如何用低价快速搭建高质量网站?
宝塔建站后网页无法访问如何解决?
建站之星如何修改网站生成路径?
建站之星24小时客服电话如何获取?
如何制作算命网站,怎么注册算命网站?
定制建站流程步骤详解:一站式方案设计与开发指南
建站IDE高效指南:快速搭建+SEO优化+自适应模板全解析
建站之星北京办公室:智能建站系统与小程序生成方案解析
武汉外贸网站制作公司,现在武汉外贸前景怎么样啊?
成都网站制作报价公司,成都工业用气开户费用?
,sp开头的版面叫什么?
如何用狗爹虚拟主机快速搭建网站?
c# 服务器GC和工作站GC的区别和设置
弹幕视频网站制作教程下载,弹幕视频网站是什么意思?
如何在企业微信快速生成手机电脑官网?
如何选购建站域名与空间?自助平台全解析
如何设置并定期更换建站之星安全管理员密码?
义乌企业网站制作公司,请问义乌比较好的批发小商品的网站是什么?
建站之星安装需要哪些步骤及注意事项?
北京网页设计制作网站有哪些,继续教育自动播放怎么设置?
岳西云建站教程与模板下载_一站式快速建站系统操作指南
中山网站推广排名,中山信息港登录入口?
唐山网站制作公司有哪些,唐山找工作哪个网站最靠谱?
如何通过网站建站时间优化SEO与用户体验?
建站之星3.0如何解决常见操作问题?
建站为何优先选择香港服务器?
c# 在ASP.NET Core中管理和取消后台任务
SQL查询语句优化的实用方法总结
教学论文网站制作软件有哪些,写论文用什么软件
?
如何高效配置IIS服务器搭建网站?
如何获取免费开源的自助建站系统源码?
企业网站制作费用多少,企业网站空间一般需要多大,费用是多少?
建站org新手必看:2024最新搭建流程与模板选择技巧
免费视频制作网站,更新又快又好的免费电影网站?
如何选择适合PHP云建站的开源框架?
建站之星下载版如何获取与安装?
建站之星在线客服如何快速接入解答?
如何在Windows 2008云服务器安全搭建网站?
相亲简历制作网站推荐大全,新相亲大会主持人小萍萍资料?
如何用景安虚拟主机手机版绑定域名建站?
网站制作公司,橙子建站是合法的吗?
怎么制作网站设计模板图片,有电商商品详情页面的免费模板素材网站推荐吗?
*请认真填写需求信息,我们会在24小时内与您取得联系。