zoukankan      html  css  js  c++  java
  • Java执行cmd命令工具类【转】

    Java执行cmd命令工具类【转】

    下述代码包含了java执行cmd、bat命令的代码

    package com.sinosoft.util;
    
    import java.io.BufferedReader;
    import java.io.InputStreamReader;
    
    
    
    /**
     * @author rayfoo@qq.com
     * @version 1.0
     * <p>执行windows的cmd命令工具类</p>
     * @date 2021/9/1 17:20
     */
    public class CMDUtil {
    
        /**
         * 执行一个cmd命令
         * @param cmdCommand cmd命令
         * @return 命令执行结果字符串,如出现异常返回null
         */
        public static String excuteCMDCommand(String cmdCommand)
        {
            StringBuilder stringBuilder = new StringBuilder();
            Process process = null;
            try {
                process = Runtime.getRuntime().exec(cmdCommand);
                BufferedReader bufferedReader = new BufferedReader(
                        new InputStreamReader(process.getInputStream(), "GBK"));
                String line = null;
                while((line=bufferedReader.readLine()) != null)
                {
                    stringBuilder.append(line+"
    ");
                }
                return stringBuilder.toString();
            } catch (Exception e) {
                e.printStackTrace();
                return null;
            }
        }
        /**
         * 执行bat文件,
         * @param file bat文件路径
         * @param isCloseWindow 执行完毕后是否关闭cmd窗口
         * @return bat文件输出log
         */
        public static String excuteBatFile(String file, boolean isCloseWindow)
        {
            String cmdCommand = null;
            if(isCloseWindow)
            {
                cmdCommand = "cmd.exe /c "+file;
            }else
            {
                cmdCommand = "cmd.exe /k "+file;
            }
            StringBuilder stringBuilder = new StringBuilder();
            Process process = null;
            try {
                process = Runtime.getRuntime().exec(cmdCommand);
                BufferedReader bufferedReader = new BufferedReader(
                        new InputStreamReader(process.getInputStream(), "GBK"));
                String line = null;
                while((line=bufferedReader.readLine()) != null)
                {
                    stringBuilder.append(line+"
    ");
                }
                return stringBuilder.toString();
            } catch (Exception e) {
                e.printStackTrace();
                return null;
            }
        }
    
        /**
         * 执行bat文件,新开窗口
         * @param file bat文件路径
         * @param isCloseWindow 执行完毕后是否关闭cmd窗口
         * @return bat文件输出log
         */
        public static String excuteBatFileWithNewWindow(String file, boolean isCloseWindow)
        {
            String cmdCommand = null;
            if(isCloseWindow)
            {
                cmdCommand = "cmd.exe /c start"+file;
            }else
            {
                cmdCommand = "cmd.exe /k start"+file;
            }
            StringBuilder stringBuilder = new StringBuilder();
            Process process = null;
            try {
                process = Runtime.getRuntime().exec(cmdCommand);
                BufferedReader bufferedReader = new BufferedReader(
                        new InputStreamReader(process.getInputStream(), "GBK"));
                String line = null;
                while((line=bufferedReader.readLine()) != null)
                {
                    stringBuilder.append(line+"
    ");
                }
                return stringBuilder.toString();
            } catch (Exception e) {
                e.printStackTrace();
                return null;
            }
        }
    }
    
    

    转自:JAVA执行cmd命令(包含执行批处理文件)

  • 相关阅读:
    vue响应式原理的实现
    手写 Promise
    模拟ATM机功能(C语言)
    打印空心菱形
    假设一对耗子每个月都可以生一对小耗子。小耗子生长3个月后,从第4个月开始也就能够生小耗子。问:假设所有的耗子都不死的话,那么20个月后一共有多少只耗子?
    判断一年中的第几天
    依次将10个数输入,要求打印出其中最大的数
    九九乘法表
    判断是否为闰年
    从键盘上接收一个字母,判断是否是大写字母,如果是则转换成小写字母输出 ,否则直接输出。
  • 原文地址:https://www.cnblogs.com/zhangruifeng/p/15215608.html
Copyright © 2011-2022 走看看