我正在尝试使用 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 上从数据库发送一些数据(主要是整数)。这一切在 Qt 中运行良好,但我必须在 java(不是我的语言)中重新实现它。
要使用 dbus-java,您必须安装 libmatthew-debug 并执行程序
-Djava.library.path=/usr/lib/jni
我正在研究 Linux Mint。