截屏机器人仅在 Debian 上捕获黑屏

Ret*_*eto 9 java linux debian openjdk-11

我正在java.awt.RobotLinux 下使用 OpenJDK 11创建屏幕截图。 Linux 上的结果是一个全黑图像。相同的代码适用于 Ubuntu 和 Windows(当然使用另一个文件路径)。

有什么线索吗?

public void captureScreen() throws AWTException {
    Robot robot = new Robot(GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice());
    BufferedImage screen = robot.createScreenCapture(new Rectangle(getDefaultToolkit().getScreenSize()));
    try {
        ImageIO.write(screen, "jpg", new File("/tmp/screenshot.jpg"));
    } catch (IOException e) {
        e.printStackTrace();
    }
}
Run Code Online (Sandbox Code Playgroud)

更新: 问题的原因在于OpenJDK和Wayland的组合。使用 Oracle JDK/JRE (13.0.1) 一切正常。

Jam*_*one 5

如果您使用 wayland 而不是 XOrg,这可能会导致问题,因为它对于图形操作的 Java 接口不太稳定。

编辑:此错误现已修复(请参阅OP)