diff --git a/sdk-tests/src/test/java/io/dapr/it/Command.java b/sdk-tests/src/test/java/io/dapr/it/Command.java index 1772ba675..156b395f4 100644 --- a/sdk-tests/src/test/java/io/dapr/it/Command.java +++ b/sdk-tests/src/test/java/io/dapr/it/Command.java @@ -32,6 +32,8 @@ public class Command { private final String command; + private final String shell; + private Process process; private Map env; @@ -40,6 +42,7 @@ public class Command { this.successMessage = successMessage; this.command = command; this.env = env; + this.shell = detectShell(); } public Command(String successMessage, String command) { @@ -49,7 +52,7 @@ public class Command { public void run() throws InterruptedException, IOException { final AtomicBoolean success = new AtomicBoolean(false); final Semaphore finished = new Semaphore(0); - ProcessBuilder processBuilder = new ProcessBuilder("bash", "-c", command); + ProcessBuilder processBuilder = new ProcessBuilder(this.shell, "-c", command); if (this.env != null) { processBuilder.environment().putAll(this.env); } @@ -103,4 +106,13 @@ public class Command { public String toString() { return this.command; } + + private static String detectShell() { + String osName = System.getProperty("os.name").toLowerCase(); + if (osName.contains("windows")) { + return "powershell.exe"; + } + + return "bash"; + } }