gpt4 book ai didi

java - 如何使用 dbus-java 注册 dbus 对象?

转载 作者:可可西里 更新时间:2023-11-01 11:49:44 26 4
gpt4 key购买 nike

我正在尝试使用来自 org.freedesktop 的 dbus-java 在 dbus 上注册对象。根据documentation此类操作需要:创建 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 自动创建的接口(interface)的实现(xml 在与 c++ (qt) 一起使用时工作正常)。

dbAccess 将从数据库中向 dbus 发送一些数据(主要是整数)。它在 Qt 中运行良好,但我必须用 Java(不是我的语言)重新实现它。

要使用 dbus-java,您必须安装 libmatthew-debug 并使用

执行程序

-Djava.library.path=/usr/lib/jni

我正在研究 Linux Mint。

最佳答案

两件事:

  1. 您需要先注册一个总线名称,即 conn.requestBustName("com.example")
  2. DatabaseAccessImpl 需要实现一个扩展 DBusInterface 的接口(interface)。

Here's我不久前制作的教程,其中包含可以帮助您了解正在发生的事情的代码。

关于java - 如何使用 dbus-java 注册 dbus 对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15251256/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com