Я создаю снимок экрана, используя java.awt.Robot
под Linux с 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();
}
}
ОБНОВЛЕНИЕ: причина проблемы заключается в сочетании OpenJDK и Wayland. С Oracle JDK/JRE (13.0.1) все работает нормально.
GraphicsEnvironment.getLocalGraphicsEnvironment().getScreenDevices()
- person ug_   schedule 03.01.2020