我正在使用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) 一切正常。