3

File.listRoots()私は最近、プログラムの起動時に接続されたデバイスを取得するためにJavaで使用するコードを書いていました。これはWindowsでは完全に機能しますが、Linuxでは機能せず、私はLinuxユーザーではないため、Linuxにアクセスできるのは、現時点ではアクセスできない大学のコンピューターからのみです。だから私はこれについて2つのことを聞きたいです:

まず、これをドライブ検出用のクロスプラットフォームソリューションにする方法。

次に、プログラムの実行中にUSBが接続されているなど、デバイスが接続されていることを「リッスン」するには、プログラムが「リッスン」してイベントを実行する必要があります。

コードは実際には無関係であり、この機能についてはあまり実装していないため、コードを提供することはできません。コードについて回答する必要があるかもしれない質問があれば質問してください。接続しているデバイスを「リッスン」すると、切断しているデバイスも「リッスン」することは間違いありませんが、そうでない場合は、これに対する解決策も知りたいと思います。

それが役に立ったら、私はJFrame内で作業します。ネイティブの実装にはるかに多くのコードと労力がかかる場合でも、可能であれば、他のパッケージを使用する代わりに、ネイティブのJavaパッケージを使用してこれを実装したいと思います。

私が思うに、これはおそらく当てはまらないことを知っているので、引用符内でリスニングを使用することに注意してください。

4

2 に答える 2

3

JavaHIDAPIを見てください

これは、Windows、Mac、および Linux で動作するクロスプラットフォームのヒューマン インターフェイス デバイス (HID) ライブラリです。それぞれにすべてのネイティブ ライブラリを提供し、Java 内で使いやすいインターフェイスを備えています。ドキュメントは少しまばらですが、すぐに使い始めることができます。

あなたの場合、接続されたデバイスのリストを監視するバックグラウンド スレッドを維持できます。あるスナップショットと次のスナップショットの間でリストが変更された場合、アプリケーションにイベントを送信できます。

于 2013-08-28T08:45:50.007 に答える