私はrxtxを使ってシリアルポートに接続しています。すべてうまく動作しますが、解決できない問題があります。COMポートからプラグを抜いたときのJavaエラー
一度接続して読むと、ユーザーがデバイスを取り外す可能性があります(はい...ユーザー...)。この問題が発生した場合、私は次のエラーを取得する:
私は例外を取得しない、それだけでJava SEの(のjava.exeを)殺します。例外が発生した場合は、それに応じて動作しますが、このシナリオでは、アプリが動作を停止して終了します。
私はシリアルポートからの読み取りにInputStreamを使用します。 InputStream input = serialPort.getInputStream();
私は問題は、ストリームが開いているとデバイスが閉じているときに検出されないことだと思います。これは私がこの行で読むと起こります。
byte singleData =(byte)input.read();
以前の状態をテストするのに役立つ方法が見つかりませんでした。 私が読んでいない(またはInputStreamで作業する)場合でも、数秒後にエラーが発生します(誰かが入力や何かを閉じようとしていると思います)。
このイベントはどのようにして取得できますか(デバイスの電源が入っていません)?ポートと入力ストリームをどのように閉じるべきですか?
ありがとうございます。
外部情報へのリンクを投稿しないでください。リンクが悪くなる。あなたの質問は自己完結型でなければならないので、将来的にその価値を保持しています。表示されているエラーは、JNI経由でJavaライブラリの基礎となるCコードにある可能性があります。これはおそらくRXTXのバグですので、助けを得る最良の場所は[RXTX Github Site](https://github.com/rxtx/rxtx)でしょう。 –
ジム、あなたの返事をありがとう。 Stackoverflowは、私にこのオプションを与えた画像を投稿させませんでした。あなたのリンクを検索します。とにかく誰かが私を助けてくれることを願って、私はこの質問を残します。 – Damian