В 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);
В качестве альтернативы, Время выполнения.getRuntime().exec
вот так:
Process process = Runtime.getRuntime().exec( "cmd /c hello.bat", null, new File("C:\\Users\\mkyong\\"));
1. Пример Java
1.1 Простой файл bat.
@echo off echo Hello World
1.2 Пример Java для чтения приведенного выше файла bat и отображения выходных данных.
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
Рекомендации
Оригинал: “https://mkyong.com/java/java-how-to-run-windows-bat-file/”