使用java运行windows-bat文件

原创于 【模棱博客】

java运行windows-bat文件

使用java运行windows-bat文件_第1张图片

在Java中运行一个简单的bat文件。

我们使用 ProcessBuilder这样运行Windows批处理文件:

Java

 

1

2

3

4

5

6

7

8

9

    ProcessBuilder processBuilder =

        new ProcessBuilder("C:\\Users\\mkyong\\hello.bat");

 

//or

 

    ProcessBuilder processBuilder = new ProcessBuilder();

    processBuilder.command("cmd", "/c", "hello.bat");

    File dir = new File("C:\\Users\\mkyong\\");

    processBuilder.directory(dir);

或者, Runtime.getRuntime().exec像这样:

Java

 

1

2

    Process process = Runtime.getRuntime().exec(

        "cmd /c hello.bat", null, new File("C:\\Users\\mkyong\\"));

 

Java示例

使用java运行windows-bat文件_第2张图片

bat文件路径  C:\\Users\\mkyong\\hello.bat

Java

 

1

2

@echo off

echo Hello World

Java示例读取上面的bat文件并显示输出。

JavaRunBatFile.java

Java

 

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

package com.mkyong.concurrency;

 

import java.io.BufferedReader;

import java.io.File;

import java.io.IOException;

import java.io.InputStreamReader;

 

public class JavaRunBatFile {

 

    public static void main(String[] args) {

 

        ProcessBuilder processBuilder = new ProcessBuilder("C:\\Users\\mkyong\\hello.bat");

      

        //Process process = Runtime.getRuntime().exec(

        //            "cmd /c hello.bat", null, new File("C:\\Users\\mkyong\\"));

                    

        try {

 

            Process process = processBuilder.start();

 

            StringBuilder output = new StringBuilder();

 

            BufferedReader reader = new BufferedReader(

                    new InputStreamReader(process.getInputStream()));

 

            String line;

            while ((line = reader.readLine()) != null) {

                output.append(line + "\n");

            }

 

            int exitVal = process.waitFor();

            if (exitVal == 0) {

                System.out.println(output);

                System.exit(0);

            } else {

                //abnormal...

            }

 

        } catch (IOException e) {

            e.printStackTrace();

        } catch (InterruptedException e) {

            e.printStackTrace();

        }

 

    }

 

}

输出

Java

 

1

Hello World

 

你可能感兴趣的:(JAVA)