如何在 Linux 上的 X Window 系统中找到 window 并将其置于最前面?

How to find a window in X Window System on Linux and bring it to front?

我在 Windows 上使用 Java 机器人和 User32 本机库对 Swing GUI 进行了一系列自动化用户测试。使用 User32.INSTANCE.EnumWindows 之类的方法,我可以找到具有特定标题的 window,将其置于最前面,然后使用 key-strokes 执行操作。我正在寻找的 windows 是其他 Swing 应用程序(运行 在单独的 JVM 中)、PDF 查看器或浏览器。我无法控制那些 windows.

有没有办法在 Linux 上做到这一点?

我的设置(如果有帮助可以更改,无论如何都会使用虚拟机):

注意:我运行这些测试是在无头服务器上进行的。

所需操作:

按照Etan的建议,我安装了wmctrl:

sudo apt-get install wmctrl

然后从Java调用它。用于查找命名的 window:

wmctrl -l <title>

获得焦点:

wmctrl -a <title>

即使使用部分标题也能正常工作,因此我可以轻松替换为 User32 本机库编写的测试。