Java Process类的详解及实例代码
发布时间 - 2026-01-10 23:18:29 点击率:次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方法详解
# 正在运行
# 是一个
# 这句
# 的人
# 都是
# 几个
# 文档
# 也就
# 子类
# 用了
# 希望能
# 谢谢大家
# 本机
# 装了
# 创建一个
# 可执行
# 请参考
# 可以自行
# 就开始
# 抽象类
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
iOS发送验证码倒计时应用
如何为不同团队 ID 动态生成多个独立按钮
javascript和jQuery中的AJAX技术详解【包含AJAX各种跨域技术】
Laravel Octane如何提升性能_使用Laravel Octane加速你的应用
如何确保FTP站点访问权限与数据传输安全?
Laravel如何将应用部署到生产服务器_Laravel生产环境部署流程
Android自定义listview布局实现上拉加载下拉刷新功能
图片制作网站免费软件,有没有免费的网站或软件可以将图片批量转为A4大小的pdf?
Laravel怎么实现支付功能_Laravel集成支付宝微信支付
如何获取PHP WAP自助建站系统源码?
如何在云指建站中生成FTP站点?
魔毅自助建站系统:模板定制与SEO优化一键生成指南
Python自然语言搜索引擎项目教程_倒排索引查询优化案例
Chrome浏览器标签页分组怎么用_谷歌浏览器整理标签页技巧【效率】
品牌网站制作公司有哪些,买正品品牌一般去哪个网站买?
购物网站制作费用多少,开办网上购物网站,需要办理哪些手续?
Laravel如何生成URL和重定向?(路由助手函数)
Android滚轮选择时间控件使用详解
如何在腾讯云免费申请建站?
Laravel Asset编译怎么配置_Laravel Vite前端构建工具使用
高性能网站服务器部署指南:稳定运行与安全配置优化方案
瓜子二手车官方网站在线入口 瓜子二手车网页版官网通道入口
网站制作企业,网站的banner和导航栏是指什么?
佐糖AI抠图怎样调整抠图精度_佐糖AI精度调整与放大细化操作【攻略】
Laravel如何实现数据库事务?(DB Facade示例)
如何用手机制作网站和网页,手机移动端的网站能制作成中英双语的吗?
详解Nginx + Tomcat 反向代理 如何在高效的在一台服务器部署多个站点
Laravel如何实现文件上传和存储?(本地与S3配置)
弹幕视频网站制作教程下载,弹幕视频网站是什么意思?
如何在Tomcat中配置并部署网站项目?
如何批量查询域名的建站时间记录?
网站建设保证美观性,需要考虑的几点问题!
Laravel怎么多语言本地化设置_Laravel语言包翻译与Locale动态切换【手册】
UC浏览器如何切换小说阅读源_UC浏览器阅读源切换【方法】
千问怎样用提示词获取健康建议_千问健康类提示词注意事项【指南】
Python面向对象测试方法_mock解析【教程】
轻松掌握MySQL函数中的last_insert_id()
儿童网站界面设计图片,中国少年儿童教育网站-怎么去注册?
高防服务器租用指南:配置选择与快速部署攻略
Python并发异常传播_错误处理解析【教程】
JavaScript 输出显示内容(document.write、alert、innerHTML、console.log)
高端建站如何打造兼具美学与转化的品牌官网?
Win11任务栏卡死怎么办 Windows11任务栏无反应解决方法【教程】
如何快速查询域名建站关键信息?
详解免费开源的DotNet二维码操作组件ThoughtWorks.QRCode(.NET组件介绍之四)
如何在云服务器上快速搭建个人网站?
Python文件流缓冲机制_IO性能解析【教程】
html5如何设置样式_HTML5样式设置方法与CSS应用技巧【教程】
Laravel如何发送系统通知_Laravel Notifications实现多渠道消息通知
如何在阿里云高效完成企业建站全流程?

