欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Java –如何运行Windows bat文件

程序员文章站 2022-03-02 22:40:32
...

在Java中,我们可以使用ProcessBuilder运行Windows批处理文件,如下所示:

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

Process process = Runtime.getRuntime().exec(
		"cmd /c hello.bat", null, new File("C:\\Users\\mkyong\\"));

1. Java示例

1.1一个简单的蝙蝠文件。

C:\\Users\\mkyong\\hello.bat
@echo off
echo Hello World

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

JavaRunBatFile.java
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();
        }

    }

}

输出量

Hello World

参考文献

  1. *-批处理文件
  2. Java ProcessBuilder示例

From: https://mkyong.com/java/java-how-to-run-windows-bat-file/