9

我正在使用java.awt.Robot带有 OpenJDK 11 的 Linux 下创建屏幕截图。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();
    }
}

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

4

1 回答 1

3

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

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

于 2020-01-03T21:01:51.663 回答