zoukankan      html  css  js  c++  java
  • java调用系统命令(执行杀进程命令)

    private static final Logger logger = LoggerFactory.getLogger(CmdUtil.class);

    /**
         * 杀死进程
         * taskkill 参数列表:
         * /S system         指定要连接到的远程系统。
         * /U [domain]user 指定应该在哪个用户上下文执行这个命令。
         * /P [password]     为提供的用户上下文指定密码。如果忽略,提示输入。
         * /F                 指定要强行终止的进程。
         * /FI filter         指定筛选进或筛选出查询的的任务。
         * /PID process id     指定要终止的进程的PID。
         * /IM image name     指定要终止的进程的映像名称。通配符 '*'可用来指定所有映像名。
         * /T Tree kill:     终止指定的进程和任何由此启动的子进程。
         * @param processName 进程名称
         * @throws Exception
         */
    public static void killProc(String processName) throws Exception {
    System.out.println("关闭应用程序:" + processName);
    executeCmd("taskkill /F /T /IM " + processName);
    }

    /**
         * 执行CMD命令
         * cmd /c dir 是执行完dir命令后关闭命令窗口。 
         * cmd /k dir 是执行完dir命令后不关闭命令窗口。
         * cmd /c start dir 会打开一个新窗口后执行dir指令,原窗口会关闭。 
         * cmd /k start dir 会打开一个新窗口后执行dir指令,原窗口不会关闭。 
         * @param command cmd命令
         * @return    命令执行输出语句
         * @throws IOException
         * @throws InterruptedException 
         */
    private static String executeCmd(String command) throws IOException, InterruptedException {
    Process process = Runtime.getRuntime().exec(command);
    process.waitFor();//等待子进程完成再往下执行。
    //创建bufferedReader
    BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(process.getInputStream(),"GBK"));
    String line = null;
    StringBuilder build = new StringBuilder();
    while ((line = bufferedReader.readLine()) != null) {
    line = new String(line.getBytes("UTF-8"));
    build.append(line);
    }
    bufferedReader.close();
    int i = process.exitValue(); //接收执行完毕的返回值
    if (i != 0) {
    logger.error("log info :","cmd执行失败");
    throw new RuntimeException("cmd执行失败");
    }
    process.destroy(); //销毁子进程
    process = null;
    return build.toString();
    }

    /**
    * linux查询对应进程名并kill
    * @throws Exception
    */
    public static void killProcess(String processName) throws Exception{
    //1.首先通过
    Process pid=Runtime.getRuntime().exec("pidof "+ processName);
    //找出linux当前运行的所有进程。
    //2.再把pid写入流中:
    BufferedReader br = new BufferedReader(new InputStreamReader(
    pid.getInputStream()), 1024);
    //3.读取流中的指定信息:
    String line = br.readLine();
    logger.info("进程分流信息是:"+ line);
    if (StringUtils.isNotEmpty(line)){
    Process pi=Runtime.getRuntime().exec("kill -9 "+line);
    }
    logger.info("已执行杀进程");
    }
  • 相关阅读:
    IDEA15 下运行Scala遇到问题以及解决办法
    关于Solr6.0中solrj使用简单例子
    How to Reuse Old PCs for Solr Search Platform?
    Build IKAnalyzer With Solr 5.1.0
    ZooKeeper(3.4.5)
    Android OpenGL ES(四)关于EGL .
    Android OpenGL ES(三)OpenGL ES API 命名习惯 .
    Android OpenGL ES(二)OpenGL ES管道(Pipeline) .
    Android OpenGL ES(一)OpenGL ES介绍
    Android OpenGL 入门示例----绘制三角形和正方形
  • 原文地址:https://www.cnblogs.com/yizw/p/13673255.html
Copyright © 2011-2022 走看看