亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Java 執(zhí)行CMD命令或執(zhí)行BAT批處理方式

 更新時間:2021年08月10日 09:40:02   作者:它山之石,可以攻玉  
這篇文章主要介紹了Java 執(zhí)行CMD命令或執(zhí)行BAT批處理方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

Java 執(zhí)行CMD命令或執(zhí)行BAT批處理

背景

日常開發(fā)中總能遇到一些奇怪的需求,例如使用java執(zhí)行cmd命令或者bat批處理文件,今天就簡單記錄一下使用過程。

使用

廢話不多說直接上代碼

import java.io.BufferedReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
public class Cmder {
    /**
     * 執(zhí)行一個cmd命令
     *
     * @param cmdCommand cmd命令
     * @return 命令執(zhí)行結果字符串,如出現異常返回null
     */
    public static String executeCmdCommand(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).append(" ");
            }
            return stringBuilder.toString();
        } catch (Exception e) {
            e.printStackTrace();
            return null;
        }
    }
    /**
     * 執(zhí)行bat文件,
     *
     * @param file          bat文件路徑
     * @param isCloseWindow 執(zhí)行完畢后是否關閉cmd窗口
     * @return bat文件輸出log
     */
    public static String executeBatFile(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).append(" ");
            }
            return stringBuilder.toString();
        } catch (Exception e) {
            e.printStackTrace();
            return null;
        }
    }
    /**
     * 執(zhí)行bat文件,新開窗口
     *
     * @param file          bat文件路徑
     * @param isCloseWindow 執(zhí)行完畢后是否關閉cmd窗口
     * @return bat文件輸出log
     */
    public static String executeBatFileWithNewWindow(String file, boolean isCloseWindow) {
        String cmdCommand;
        if (isCloseWindow) {
            cmdCommand = "cmd.exe /c start" + file;
        } else {
            cmdCommand = "cmd.exe /k start" + file;
        }
        StringBuilder stringBuilder = new StringBuilder();
        Process process;
        try {
            process = Runtime.getRuntime().exec(cmdCommand);
            BufferedReader bufferedReader = new BufferedReader(
                    new InputStreamReader(process.getInputStream(), "GBK"));
            String line;
            while ((line = bufferedReader.readLine()) != null) {
                stringBuilder.append(line).append(" ");
            }
            return stringBuilder.toString();
        } catch (Exception e) {
            e.printStackTrace();
            return null;
        }
    }
    /**
     * 執(zhí)行bat腳本
     *
     * @param batScript 腳本內容
     * @param location  腳本存儲路徑
     * @return 結果
     */
    public static String executeBatScript(String batScript, String location) {
        StringBuilder stringBuilder = new StringBuilder();
        FileWriter fw = null;
        try {
            //生成bat文件
            fw = new FileWriter(location);
            fw.write(batScript);
            fw.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
        Process process;
        try {
            process = Runtime.getRuntime().exec(location);
            BufferedReader bufferedReader = new BufferedReader(
                    new InputStreamReader(process.getInputStream(), "GBK"));
            String line;
            while ((line = bufferedReader.readLine()) != null) {
                stringBuilder.append(line).append(" ");
            }
            return stringBuilder.toString();
        } catch (Exception e) {
            e.printStackTrace();
            return null;
        }
    }
    /**
     * 執(zhí)行腳本,不停止,并輸出執(zhí)行結果
     *
     * @param batScript 腳本內容
     * @param location  bat文件生成地址
     */
    public void executeBatScriptAlways(String batScript, String location) {
        FileWriter fw = null;
        try {
            //生成bat文件
            fw = new FileWriter(location);
            fw.write(batScript);
            fw.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
        StringBuilder stringBuilder = new StringBuilder();
        //運行bat文件
        Process process;
        try {
            process = Runtime.getRuntime().exec(location);
            BufferedReader bufferedReader = new BufferedReader(
                    new InputStreamReader(process.getInputStream(), "GBK"));
            String line;
            while ((line = bufferedReader.readLine()) != null) {
                System.out.println(line);
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

Java 執(zhí)行系統(tǒng)命令

1. windows

1.1 cmd

第一種方法

        File dir = new File("D:\\mysql57\\mysql-5.7.29-winx64\\bin");
        // String command="netstat -an";
        String command = "c:\\windows\\system32\\cmd.exe /c mysqlbinlog  ../data/master-bin.000006 | more";
        Runtime r = Runtime.getRuntime();
        Process p = r.exec(command, null, dir);
        BufferedReader br = new BufferedReader(new InputStreamReader(p.getInputStream()));
        StringBuffer sb = new StringBuffer();
        String inline;
        while (null != (inline = br.readLine())) {
            sb.append(inline).append("\n");
        }
        System.out.println(sb.toString());

第二種方法

        try {
            File dir = new File("D:\\mysql57\\mysql-5.7.29-winx64\\bin");//此處是指定路徑
            String[] cmd = new String[] { "cmd", "/c",
                    "mysqlbinlog -v ../data/master-bin.000006 | more"
            };// cmd[2]是要執(zhí)行的dos命令
            System.out.println(cmd[2]);
            Process process = Runtime.getRuntime().exec(cmd,null,dir);
            // 記錄dos命令的返回信息
            StringBuffer resStr = new StringBuffer();
            // 獲取返回信息的流
            InputStream in = process.getInputStream();
            Reader reader = new InputStreamReader(in);
            BufferedReader bReader = new BufferedReader(reader);
            for (String res = ""; (res = bReader.readLine()) != null;) {
                resStr.append(res + "\n");
            }
            System.out.println(resStr.toString());
            bReader.close();
            reader.close();
            process.getOutputStream().close();  // 不要忘記了一定要關
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

windows cmd 命令

后臺運行

start /b 程序名字
start /b redis-server.exe redis.windows.conf

在這里插入圖片描述

關閉程序

taskkill /f /t /im 程序名字
taskkill /f /t /im redis-server.exe

在這里插入圖片描述

查看進程

根據進程名稱 查看進程

tasklist|find /i "redis-server.exe"

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • Java中mkdir()和mkdirs()的區(qū)別及說明

    Java中mkdir()和mkdirs()的區(qū)別及說明

    這篇文章主要介紹了Java中mkdir()和mkdirs()的區(qū)別及說明,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • Java中的逃逸問題心得

    Java中的逃逸問題心得

    本篇文章是作者在學習了Java中的逃逸相關知識后的心得分享,一起跟著小編學習下。
    2018-02-02
  • Java實現24點小游戲

    Java實現24點小游戲

    這篇文章主要為大家詳細介紹了Java實現24點小游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-01-01
  • Java數據結構之查找

    Java數據結構之查找

    本文主要介紹了Java數據結構中查找的相關知識。具有很好的參考價值。下面跟著小編一起來看下吧
    2017-03-03
  • SpringBoot整合新版SpringSecurity完整過程

    SpringBoot整合新版SpringSecurity完整過程

    Spring Security是保障Spring應用程序安全的強大框架,而新版的Spring Security引入了lambda表達式來配置,使得安全配置更加簡潔、優(yōu)雅,本文將介紹如何在Spring Boot項目中整合新版Spring Security,需要的朋友可以參考下
    2024-02-02
  • 啟動 Eclipse 彈出 Failed to load the JNI shared library jvm.dll 錯誤的解決方法

    啟動 Eclipse 彈出 Failed to load the JNI shared library jvm.dll

    這篇文章主要介紹了有時候,新電腦上回碰到打開Eclipse時,彈出提示“Failed to load the JNI shared library jvm.dll”錯誤,這里給大家分享解決方案
    2016-08-08
  • java模擬客戶端向服務器上傳文件

    java模擬客戶端向服務器上傳文件

    這篇文章主要為大家詳細介紹了java模擬客戶端向服務器上傳文件,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-10-10
  • SpringBoot 跨域問題的解決方案

    SpringBoot 跨域問題的解決方案

    這篇文章主要介紹了SpringBoot 跨域問題的解決方案,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-06-06
  • web.xml中servlet, bean, filter, listenr 加載順序_動力節(jié)點Java學院整理

    web.xml中servlet, bean, filter, listenr 加載順序_動力節(jié)點Java學院整理

    這篇文章主要介紹了web.xml中servlet, bean, filter, listenr 加載順序,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-08-08
  • Java?@Accessors注解圖文詳解

    Java?@Accessors注解圖文詳解

    @Accessors用于改變@Data生成的getter和setter方法的生成結果,下面這篇文章主要給大家介紹了關于Java?@Accessors注解的相關資料,需要的朋友可以參考下
    2023-02-02

最新評論