java中有stdin_在java中听stdin的后台进程
我必須創建一個
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腳本運行這個過程.我也可以使用&或者沒有
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明確地回顯它,即調用stop.我只需要一個程序由shell腳本顯式關閉.我努力了.幫我.
編輯:
我只想在用戶按q或任何此類事件時關閉程序,并且不希望代碼中出現無限循環.如果可能的話,任何其他方法如聽其他事件也會有所幫助.我的代碼不應該輪詢事件.我已經嘗試過Jnotify,它監視目錄并在該目錄中創建或刪除文件時引發事件.但運氣不好,他們不支持SunOS. 🙁
總結
以上是生活随笔為你收集整理的java中有stdin_在java中听stdin的后台进程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java设置窗口不可移动_Java –
- 下一篇: 蓝桥杯java龟兔赛跑_算法-蓝桥杯习题