Я должен сделать программу Java, которая, когда пользователь вводит 0, должна выйти. нет проблем с написанием кода Java.
int cmd = read();
System.out.println("got command : " + cmd);
if (cmd == 48) { // ASCII code for 0
System.exit(0);
Я хочу запустить этот процесс, используя скрипт start -stop в Linux. Я также могу сделать это, используя &
илиnohup
case "$1" in
'start')
if [ -f myfifo ]; then
rm myfifo
fi
mkfifo myfifo
cat > myfifo &
echo $! > myfifo-cat-pid
java -jar myjar.jar >/dev/null 2>&1 0<myfifo &
echo "Started process: "$!
;;
'stop')
echo 0 > myfifo
echo "Stopped process: "
rm myfifo
;;
esac
Моя проблема в том, что как только я запускаю этот процесс, он читает ввод -1. Хотя я хочу читать из stdinput, когда что-то явно отображается на нем, т.е. вызывается остановка. Просто мне нужна программа, которая будет явно закрыта скриптом оболочки. Я очень старался. Помоги мне.
Изменить:
Я просто хочу закрыть программу, когда пользователь нажимает q или любое подобное событие, и мне не нужен бесконечный цикл в коде. Любой другой подход, такой как прослушивание других событий, также поможет, если это возможно. Мой код не должен запрашивать событие. Я пробовал Jnotify
, которые просматривают каталог и вызывают событие, когда файл создается или удаляется в этом каталоге. Но, к сожалению, у них нет поддержки SunOS.:(