У меня есть баночка, например test.jar, в которой TestJar является основным классом, сценарий оболочки jar_executor.sh и файл java. Мой test.jar вернет 1, если мы передадим 1 в качестве аргумента, и 2, если мы передадим любое другое значение. Мой сценарий оболочки выполняет test.jar следующим образом
#!/usr/bin/ksh
java TestJar 1 -cp test.jar
return_code=$?
exit $return_code
В java-файле я создаю процесс и выполняю сценарий оболочки и получаю его значение выхода с помощью следующего кода
Runtime runtime = Runtime.getRuntime();
Process process = runtime.exec(sh jar_executor.sh);
int exitVal = process.waitFor();
System.out.println(exitVal);
Эта переменная exitVal должна вывести 1 или 2 в соответствии с переданным нами аргументом, но он печатает 255 каждый раз.
Если я использую echo $ return_code
в сценарии оболочки, я получаю правильное значение.
Пожалуйста, помогите мне, почему я получаю значение 255 с exit
. Заранее спасибо !!!