私は特定の時間にキーボードのキーをポーリングする必要があるプログラムを作成しています。自分のイベントドリブンのキーボードポーリングクラスを作成するのではなく、 JInputの組み込みのKeyboardクラスです。JInputのキーボードをルート権限なしで使用する
私はrootとしてプログラムを実行すると(Ubuntu 10.10を実行しています)、正常に動作しますが、通常のユーザーとして実行するとキーボードが存在することは検出されません。私は、次のエラー出力を得る:
Nov 29, 2010 2:08:50 PM net.java.games.input.DefaultControllerEnvironment getControllers
INFO: Loading: net.java.games.input.LinuxEnvironmentPlugin
Nov 29, 2010 2:08:50 PM net.java.games.input.ControllerEnvironment log
INFO: Failed to open device (/dev/input/event11): Failed to open device /dev/input/event11 (13)
Nov 29, 2010 2:08:50 PM net.java.games.input.ControllerEnvironment log
INFO: Failed to open device (/dev/input/event10): Failed to open device /dev/input/event10 (13)
Nov 29, 2010 2:08:50 PM net.java.games.input.ControllerEnvironment log
INFO: Failed to open device (/dev/input/event9): Failed to open device /dev/input/event9 (13)
Nov 29, 2010 2:08:50 PM net.java.games.input.ControllerEnvironment log
INFO: Failed to open device (/dev/input/event8): Failed to open device /dev/input/event8 (13)
Nov 29, 2010 2:08:50 PM net.java.games.input.ControllerEnvironment log
INFO: Failed to open device (/dev/input/event7): Failed to open device /dev/input/event7 (13)
Nov 29, 2010 2:08:50 PM net.java.games.input.ControllerEnvironment log
INFO: Failed to open device (/dev/input/event6): Failed to open device /dev/input/event6 (13)
Nov 29, 2010 2:08:50 PM net.java.games.input.ControllerEnvironment log
INFO: Failed to open device (/dev/input/event5): Failed to open device /dev/input/event5 (13)
Nov 29, 2010 2:08:50 PM net.java.games.input.ControllerEnvironment log
INFO: Failed to open device (/dev/input/event4): Failed to open device /dev/input/event4 (13)
Nov 29, 2010 2:08:50 PM net.java.games.input.ControllerEnvironment log
INFO: Failed to open device (/dev/input/event3): Failed to open device /dev/input/event3 (13)
Nov 29, 2010 2:08:50 PM net.java.games.input.ControllerEnvironment log
INFO: Failed to open device (/dev/input/event2): Failed to open device /dev/input/event2 (13)
Nov 29, 2010 2:08:50 PM net.java.games.input.ControllerEnvironment log
INFO: Failed to open device (/dev/input/event1): Failed to open device /dev/input/event1 (13)
Nov 29, 2010 2:08:50 PM net.java.games.input.ControllerEnvironment log
INFO: Failed to open device (/dev/input/event0): Failed to open device /dev/input/event0 (13)
誰もが私はrootとして実行する必要はありませんJInputまたはこれを回避する方法のための任意のアイデアでキーボードを使用して任意の経験を持っていますか?ありがとう!
単純なudevルールは/ dev/input/event *権限を保持します。私はむしろ特別なグループ(例えば "入力")を作成し、 'KERNEL =="イベント* "、NAME ="入力/%k "、MODE =" 640 "、GROUP ="入力 " etc/udev/rules.d/99-evdev.rules –
@barti:ああ、私は良いものとして復帰する権限を意味しました:-)。しかし、グループ内のデバイスをサンドボックス化するという考えは良いことです。残念ながら、これらのソリューションはすべて、ゲームをプレイしたいと思っている誰かのために一種のグッドです(プログラムの実行中にキーボードデバイスに自由にアクセスする必要があるということを気にしています。フォアグラウンドでもそうでなくても)。 –
@マーク:さて、あなたの意見を見ています(とにかく、あなたのコメントを誘発しました):)すべてがアプリケーションの種類に変わります。なぜゲームにアクセスする必要があるのかわかりませんシステム全体のキーボードイベント。一方、入力アクセス権のチューニングは、setuidビットの設定やスーパーユーザーとしてのプログラムの実行よりも悪く見えます。しかし、再び、私は何かが欠けている可能性があります:) –