org.freedesktop から dbus-java を使用して dbus にオブジェクトを登録しようとしています。ドキュメントによると、このような操作には、DBusConnection の作成、オブジェクトの作成、および DBusConnection でメソッド exportObject の呼び出しが必要です。
私のコード:
DatabaseAccessImpl dbAccess = new DatabaseAccessImpl();
System.out.println("Object created.");
System.out.println("Trying to connect session bus");
try {
conn = DBusConnection.getConnection(DBusConnection.SESSION);
} catch(DBusException ex) {
ex.printStackTrace();
}
System.out.println("Connected to session bus.");
System.out.println("Trying to register dbus object");
try {
conn.exportObject("/obj/path", new DatabaseAccessImpl());
} catch (DBusException e) {
e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates.
}
どこ:
DatabaseAccessImpl は、CreateInterface によって自動的に作成されるインターフェイスの実装です (xml は、c++ (qt) で使用している間は正常に機能しました)。
dbAccess は、データベースから dbus でデータ (ほとんどが int) を送信します。それはすべてQtでうまく機能しますが、Javaで再実装する必要があります(私の言語ではありません)。
dbus-java を使用するには、libmatthew-debug をインストールしてプログラムを実行する必要があります。
-Djava.library.path=/usr/lib/jni
私はLinux Mintに取り組んでいます。