一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達(dá)式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務(wù)器之家 - 編程語言 - Java教程 - Java 執(zhí)行CMD命令或執(zhí)行BAT批處理方式

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

2021-11-11 13:34它山之石,可以攻玉 Java教程

這篇文章主要介紹了Java 執(zhí)行CMD命令或執(zhí)行BAT批處理方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

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

背景

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

使用

廢話不多說直接上代碼

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
import java.io.BufferedReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
public class Cmder {
    /**
     * 執(zhí)行一個(gè)cmd命令
     *
     * @param cmdCommand cmd命令
     * @return 命令執(zhí)行結(jié)果字符串,如出現(xiàn)異常返回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í)行完畢后是否關(guān)閉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í)行完畢后是否關(guān)閉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 腳本內(nèi)容
     * @param location  腳本存儲(chǔ)路徑
     * @return 結(jié)果
     */
    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í)行結(jié)果
     *
     * @param batScript 腳本內(nèi)容
     * @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();
        //運(yùn)行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

第一種方法

?
1
2
3
4
5
6
7
8
9
10
11
12
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(" ");
}
System.out.println(sb.toString());

第二種方法

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
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 + " ");
    }
    System.out.println(resStr.toString());
    bReader.close();
    reader.close();
    process.getOutputStream().close();  // 不要忘記了一定要關(guān)
} catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}

windows cmd 命令

后臺(tái)運(yùn)行

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

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

關(guān)閉程序

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

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

查看進(jìn)程

根據(jù)進(jìn)程名稱 查看進(jìn)程

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

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持服務(wù)器之家。

原文鏈接:https://blog.csdn.net/y534560449/article/details/116232595

延伸 · 閱讀

精彩推薦
  • Java教程Java使用SAX解析xml的示例

    Java使用SAX解析xml的示例

    這篇文章主要介紹了Java使用SAX解析xml的示例,幫助大家更好的理解和學(xué)習(xí)使用Java,感興趣的朋友可以了解下...

    大行者10067412021-08-30
  • Java教程Java8中Stream使用的一個(gè)注意事項(xiàng)

    Java8中Stream使用的一個(gè)注意事項(xiàng)

    最近在工作中發(fā)現(xiàn)了對(duì)于集合操作轉(zhuǎn)換的神器,java8新特性 stream,但在使用中遇到了一個(gè)非常重要的注意點(diǎn),所以這篇文章主要給大家介紹了關(guān)于Java8中S...

    阿杜7482021-02-04
  • Java教程Java實(shí)現(xiàn)搶紅包功能

    Java實(shí)現(xiàn)搶紅包功能

    這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)搶紅包功能,采用多線程模擬多人同時(shí)搶紅包,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙...

    littleschemer13532021-05-16
  • Java教程Java BufferWriter寫文件寫不進(jìn)去或缺失數(shù)據(jù)的解決

    Java BufferWriter寫文件寫不進(jìn)去或缺失數(shù)據(jù)的解決

    這篇文章主要介紹了Java BufferWriter寫文件寫不進(jìn)去或缺失數(shù)據(jù)的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望...

    spcoder14552021-10-18
  • Java教程xml與Java對(duì)象的轉(zhuǎn)換詳解

    xml與Java對(duì)象的轉(zhuǎn)換詳解

    這篇文章主要介紹了xml與Java對(duì)象的轉(zhuǎn)換詳解的相關(guān)資料,需要的朋友可以參考下...

    Java教程網(wǎng)2942020-09-17
  • Java教程20個(gè)非常實(shí)用的Java程序代碼片段

    20個(gè)非常實(shí)用的Java程序代碼片段

    這篇文章主要為大家分享了20個(gè)非常實(shí)用的Java程序片段,對(duì)java開發(fā)項(xiàng)目有所幫助,感興趣的小伙伴們可以參考一下 ...

    lijiao5352020-04-06
  • Java教程升級(jí)IDEA后Lombok不能使用的解決方法

    升級(jí)IDEA后Lombok不能使用的解決方法

    最近看到提示IDEA提示升級(jí),尋思已經(jīng)有好久沒有升過級(jí)了。升級(jí)完畢重啟之后,突然發(fā)現(xiàn)好多錯(cuò)誤,本文就來介紹一下如何解決,感興趣的可以了解一下...

    程序猿DD9332021-10-08
  • Java教程小米推送Java代碼

    小米推送Java代碼

    今天小編就為大家分享一篇關(guān)于小米推送Java代碼,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧...

    富貴穩(wěn)中求8032021-07-12
主站蜘蛛池模板: 男人猛进女人屁股免费 | 国产成人免费在线观看 | 亚洲成综合人影院在院播放 | 国产亚洲一欧美一区二区三区 | 高清在线观看mv的网址免费 | 日韩精品一区二三区中文 | 日本精品中文字幕在线播放 | porono日本人xxx | 奇米777四色精品综合影院 | 国产偷窥女洗浴在线观看亚洲 | 91免费破解版 | 国产一区二区视频在线观看 | 向日葵视频app下载18岁以下勿看 | 波多野结衣女教师在线观看 | 果冻传媒在线播放观看w | 亚洲码在线观看 | 福利片免费一区二区三区 | 无码一区国产欧美在线资源 | 国产视频久久 | 女人张开腿让男人桶爽 | 欧美精品一区二区三区久久 | 亚洲激情欧美 | 亚洲看片lutube在线入口 | 成人猫咪maomiav永久网址 | 国产ay| 暖暖的韩国免费观看 | 国产在线拍 | 免费观看一级欧美在线视频 | 国产成人综合网亚洲欧美在线 | 国产麻豆视频 | 千金肉奴隶免费观看 | 美女视频ww8888网网 | 天堂在线国产 | 亚洲天堂网站 | 性插图动态图无遮挡 | 插得好爽 | 青草福利视频 | 92国产福利久久青青草原 | 天天狠天天透天干天天怕处 | 亚洲伦理一区 | 色哟哟观看|