package test_cmd_command;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.time.LocalDateTime;
public class CommandLine {
public static String executeCommand(String cliCommand) {
String s = null;
BufferedReader stdInput = null;
BufferedReader stdError = null;
String error = "";
String output = "";
try {
ProcessBuilder pb1 = new ProcessBuilder(
"bash",
"-c",
cliCommand);
pb1.redirectErrorStream(true);
Process p = pb1.start();
stdInput = new BufferedReader(new InputStreamReader(p.getInputStream()));
stdError = new BufferedReader(new InputStreamReader(p.getErrorStream()));
while ((s = stdInput.readLine()) != null) {
output += "\n" + s;
}
//System.out.println("Here is the standard error of the command (if any):\n");
while ((s = stdError.readLine()) != null) {
//System.out.println(">> "+s.toString());
error += "\n" + s;
}
} catch (IOException e) {
System.out.println("exception happened - here's what I know: \n" + e.getMessage());
} finally {
try {
stdInput.close();
stdError.close();
} catch (IOException e) {
}
}
String returnValue = null;
if (output != null && error != null) {
returnValue = output + "\n" + ": " + error;
} else if (output != null) {
returnValue = output;
}
return returnValue;
}
}
"csc -version" работает в терминале, но не из моей java-программы на MAC.выдает "команда bash Not Found" .Есть ли способ решить эту проблему .... Эта программа правильно запускает другие команды, такие как javac -version и т. Д. Я запускаю эту программу на MAC, а не на windows .