2

バックグラウンドでいくつかのタスクを実行するコンソール Java アプリケーションがあります。Java は、キーボード バッファーに何かがあるかどうかをテストするためのコンソール kbhit() をサポートしていません。コンソールのすべての読み取りとテストがブロックされていることがわかっています。

私がやろうとしているのは、console.readLine() のようなものでバックグラウンド スレッドを開始し、このブロッキング コールが終了した後に何らかの終了フラグを設定することです。アプリケーションのバックグラウンド タスクは、このフラグをチェックして、終了する必要があるかどうかを判断します。

ところで、私のアプリケーションは作業中 (logback などによるログ記録) にコンソールに書き込みますが、それを読み取ることはありません。

そのような戦略は良いものですか?

4

1 に答える 1

1

使用できますSystem.in.available()>0が、コンソールから(エンターキーを押した後)行全体をバッファリングするだけです

于 2011-05-14T23:14:11.697 に答える