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方法详解
# 正在运行
# 是一个
# 这句
# 的人
# 都是
# 几个
# 文档
# 也就
# 子类
# 用了
# 希望能
# 谢谢大家
# 本机
# 装了
# 创建一个
# 可执行
# 请参考
# 可以自行
# 就开始
# 抽象类
相关文章:
建站之星后台搭建步骤解析:模板选择与产品管理实操指南
零服务器AI建站解决方案:快速部署与云端平台低成本实践
全景视频制作网站有哪些,全景图怎么做成网页?
建站之星24小时客服电话如何获取?
建站主机助手选型指南:2025年热门推荐与高效部署技巧
高性价比服务器租赁——企业级配置与24小时运维服务
网站制作软件免费下载安装,有哪些免费下载的软件网站?
网站设计制作企业有哪些,抖音官网主页怎么设置?
免费视频制作网站,更新又快又好的免费电影网站?
网站制作难吗安全吗,做一个网站需要多久时间?
长沙做网站要多少钱,长沙国安网络怎么样?
阿里云网站搭建费用解析:服务器价格与建站成本优化指南
建站之星客服服务时间及联系方式如何?
建站之星展会模版如何一键下载生成?
css网站制作参考文献有哪些,易聊怎么注册?
建站主机系统SEO优化与智能配置核心关键词操作指南
如何基于PHP生成高效IDC网络公司建站源码?
网站制作软件有哪些,制图软件有哪些?
建站之星代理商如何保障技术支持与售后服务?
制作充值网站的软件,做人力招聘为什么要自己交端口钱?
设计网站制作公司有哪些,制作网页教程?
香港服务器网站搭建教程-电商部署、配置优化与安全稳定指南
网站制作话术技巧,网站推广做的好怎么话术?
网站制作企业,网站的banner和导航栏是指什么?
如何在阿里云虚拟主机上快速搭建个人网站?
如何高效完成独享虚拟主机建站?
如何快速查询域名建站关键信息?
制作电商网页,电商供应链怎么做?
电商网站制作价格怎么算,网上拍卖流程以及规则?
Python路径拼接规范_跨平台处理说明【指导】
制作网站的软件免费下载,免费制作app哪个平台好?
制作网站的模板软件,网站怎么建设?
建站主机解析:虚拟主机配置与服务器选择指南
北京企业网站设计制作公司,北京铁路集团官方网站?
建站主机空间推荐 高性价比配置与快速部署方案解析
小自动建站系统:AI智能生成+拖拽模板,多端适配一键搭建
建站主机与虚拟主机有何区别?如何选择最优方案?
建站主机如何选?性能与价格怎样平衡?
建站三合一如何选?哪家性价比更高?
美食网站链接制作教程视频,哪个教做美食的网站比较专业点?
北京网站制作费用多少,建立一个公司网站的费用.有哪些部分,分别要多少钱?
测试制作网站有哪些,测试性取向的权威测试或者网站?
盐城做公司网站,江苏电子版退休证办理流程?
免费制作小说封面的网站有哪些,怎么接网站批量的封面单?
C#如何序列化对象为XML XmlSerializer用法
PHP正则匹配日期和时间(时间戳转换)的实例代码
在线制作视频的网站有哪些,电脑如何制作视频短片?
如何基于云服务器快速搭建个人网站?
常州自助建站:操作简便模板丰富,企业个人快速搭建网站
如何在建站宝盒中设置产品搜索功能?
*请认真填写需求信息,我们会在24小时内与您取得联系。