0

JNA 在 ubuntu 11.10 版本以后无法获取系统空闲时间。

    public static long getIdleTimeMillis() {
            X11.Window win = null;
            Xss.XScreenSaverInfo info = null;
            X11.Display dpy = null;

            final X11 x11 = X11.INSTANCE;
            final Xss xss = Xss.INSTANCE;

            long idlemillis = 0L;
            try {
                    dpy = x11.XOpenDisplay(null);
                    win = x11.XDefaultRootWindow(dpy);
                    info = xss.XScreenSaverAllocInfo();
                    xss.XScreenSaverQueryInfo(dpy, win, info);

                    idlemillis = info.idle.longValue();

            } finally {
                    if (info != null)
                            x11.XFree(info.getPointer());
                    info = null;

                    if (dpy != null)
                            x11.XCloseDisplay(dpy);
                    dpy = null;
            }
            return idlemillis;

我正在使用此代码来捕获空闲时间。它在较低版本的 ubuntu 中运行良好。但它不适用于最新版本。

它没有从生产线上移动

最终 Xss xss = Xss.INSTANCE;

请建议我一个适当的解决方案。

4

1 回答 1

0

事实上,这个代码只有在系统上安装了“libxss1”包时才有效。从 ubuntu 11.10 开始,默认不安装 libXss.so。

sudo apt-get install libxss1 解决这个问题,但是需要额外的系统包安装

于 2013-05-15T13:35:47.463 回答