Я пытаюсь выполнить сценарий оболочки с аргументами командной строки с помощью ProcessBuilder, этот сценарий оболочки inturn вызывает два других сценария оболочки, которые используют этот аргумент. Первый сценарий оболочки работает нормально, но при запуске второй один возвращает код выхода 1.Не удается запустить сценарий оболочки с аргументами с помощью Java ProcessBuilder
ProcessBuilder фрагмент из программы Java:
//scenario - A string that holds a numerical value like 1 or 2 etc
String[] command2 = {"/bin/bash", "<path to shell script>/runTemporaryTestSuite.sh", scenario};
ProcessBuilder pb2 = new ProcessBuilder(command2);
Process p2 = pb2.start();
BufferedReader br = new BufferedReader(new InputStreamReader(p2.getInputStream()));
String line;
//print - is an object ref of response.getWriter() //
print.println("Output of running "+Arrays.toString(command2)+" is: ");
while ((line = br.readLine()) != null) {
print.println(line);
}
try {
int exitValue = p2.waitFor();
print.println("<br><br>Exit Value of p2 is " + exitValue);
} catch (InterruptedException e) {
e.printStackTrace();
}
runTemporaryTestSuite.sh
#!/bin/bash
sh <path to script>/clearRegressionResult.sh (This runs fine)
sh <path to script>/startRegression.sh $1 (This is where the issue occurs)
startRegression.sh выглядит следующим образом:
SUITE_PATH="./"
java -DconfigPath=${SUITE_PATH}/config.xml -Dscenario=$1 -Dauto=true -jar test.jar
Мой выход: Вывод [/ bin/bash, /runTemporaryTestSuite.sh, 29]: Значение выхода p2 равно 1
Любая помощь в разрешении этого действительно ценится.