java中有stdin_在java中听stdin的后台进程
我必須創(chuàng)建一個
java程序,當(dāng)用戶輸入0時它應(yīng)該退出.用java代碼編寫沒問題.
int cmd = read();
System.out.println("got command : " + cmd);
if (cmd == 48) { // ASCII code for 0
System.exit(0);
我想在linux中使用start-stop腳本運行這個過程.我也可以使用&或者沒有
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
echo "Started process: "$!
;;
'stop')
echo 0 > myfifo
echo "Stopped process: "
rm myfifo
;;
esac
我的問題是,只要我運行此過程,它就會讀取輸入-1.雖然我想從stdinput中讀取somthing明確地回顯它,即調(diào)用stop.我只需要一個程序由shell腳本顯式關(guān)閉.我努力了.幫我.
編輯:
我只想在用戶按q或任何此類事件時關(guān)閉程序,并且不希望代碼中出現(xiàn)無限循環(huán).如果可能的話,任何其他方法如聽其他事件也會有所幫助.我的代碼不應(yīng)該輪詢事件.我已經(jīng)嘗試過Jnotify,它監(jiān)視目錄并在該目錄中創(chuàng)建或刪除文件時引發(fā)事件.但運氣不好,他們不支持SunOS. 🙁
總結(jié)
以上是生活随笔為你收集整理的java中有stdin_在java中听stdin的后台进程的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java设置窗口不可移动_Java –
- 下一篇: 利用AI+大数据!钟南山团队联合腾讯发布