我必须制作一个java程序,当用户输入0时它应该退出。用java代码编写没问题。
int cmd = read();
System.out.println("got command : " + cmd);
if (cmd == 48) { // ASCII code for 0
System.exit(0);
我想在 linux 中使用 start-stop 脚本运行这个过程。我也可以使用&
或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 读取当somthing 明确地回显到它时,即调用停止。只是我需要一个程序被shell脚本明确关闭。我已经很努力了。帮我。
编辑 :
我只想在用户按下 q 或任何此类事件时关闭程序,并且不希望代码中出现无限循环。如果可能的话,任何其他方法(如监听其他事件)也会有所帮助。我的代码不应该轮询事件。我尝试过Jnotify
在该目录中创建或删除文件时监视目录并引发事件。但不幸的是,他们不支持 SunOS。:(