I have to run a shell script from Java in a Linux box for eg, Below is the script path and all parameters needed by the script.
"ksh /xyz/abc/data/code_base/RUN_SCRIPTS/dev/my_script.sh param1 param2 20200901 459 121"
Below is the code,
String script = "ksh /xyz/abc/data/code_base/RUN_SCRIPTS/dev/my_script.sh param1 param2 20200901 459 121";
ProcessBuilder processBuilder = new ProcessBuilder();
processBuilder.command(script);
processBuilder.redirectErrorStream(true);
//start() will be in try catch
process = processBuilder.start();
int exitVal = process.waitFor();
if(exitVal == 0){
//code
}
Do i need to pass the script as a List by adding each as a separate String in the List ? "ksh" , "/xyz/abc/data/code_base/RUN_SCRIPTS/dev/my_script.sh" , "param1" "param2" "20200901" "459" "121"
On my Windows machine, i am opening a Notepad as below and it works fine,
ProcessBuilder processBuilder = new ProcessBuilder("Notepad.exe", "C:/Dev/Test.txt");
processBuilder.redirectErrorStream(true);
process = processBuilder.start();
Will the script get executed on the Linux box properly or any more changes are required in the code ??