java控制Windows进程,服务管理器项目

概述:可以使用Runtime类和Process类。

       使用Runtime.getRuntime().exec()方法执行Windows命令。这个方法接受一个字符串参数,表示要执行的命令。例如,要执行ipconfig命令,可以这样写:

String command = "ipconfig";
Process process = Runtime.getRuntime().exec(command);
  1.      获取进程的输入流和错误流。通过Process.getInputStream()Process.getErrorStream()方法可以分别获取进程的输入流和错误流。这两个流可以用来读取命令执行的结果和错误信息。

  2.     读取进程的输出。可以使用BufferedReader类来读取进程的输出。例如:

BufferedReader inputReader = new BufferedReader(new InputStreamReader(process.getInputStream()));
String line;
while ((line = inputReader.readLine()) != null) {
    System.out.println(line);
}
  1.      读取进程的错误输出。与读取进程的输出类似,可以使用BufferedReader类来读取进程的错误输出。例如:
BufferedReader errorReader = new BufferedReader(new InputStreamReader(process.getErrorStream()));
String line;
while ((line = errorReader.readLine()) != null) {
    System.err.println(line);
}
  1.   等待进程完成。使用Process.waitFor()方法等待进程完成。例如:
int exitCode = process.waitFor();
System.out.println("Exit code: " + exitCode);

       这就是一个简单的Java控制Windows进程的概述。需要注意的是,这种方法只适用于Windows操作系统,因为执行的命令是Windows特有的。在其他操作系统上,需要使用相应的命令。

服务管理器项目地址:

nanshaws/processManager: 用javafx搞了一个简单的服务管理器,可用来开启和关闭mysql等类型的服务。当前只可运行在Windows上 (github.com)

package org.example.processmanager.utils;

import java.io.IOException;
/**
 * @author cyl
 */
public class ProcessManager {
    public static void start(String name) {
        // 命令行指令,启动 name 服务
        String startCommand = "sc start "+name;
        try {
            // 启动 name 服务
            Process startProcess = new ProcessBuilder("cmd", "/c", startCommand).start();
            startProcess.waitFor();
            System.out.println(name+"服务已启动");
        } catch (IOException | InterruptedException e) {
            e.printStackTrace();
        }
    }

    public static void stop(String name){
         // 命令行指令,关闭 name 服务
         String stopCommand = "sc stop "+name;
         // 关闭 name 服务
        Process stopProcess = null;
        try {
            stopProcess = new ProcessBuilder("cmd", "/c", stopCommand).start();
            stopProcess.waitFor();
            System.out.println(name+"服务已关闭");
        } catch (Exception e) {
            throw new RuntimeException(e);
        }
    }

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

nanshaws

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值