Estoy creando una captura de pantalla usando java.awt.Robot
Linux con OpenJDK 11. El resultado en Linux es una imagen completamente negra. El mismo código funciona en Ubuntu y Windows (usando otra ruta de archivo, por supuesto).
¿Cualquier pista?
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();
}
}
ACTUALIZACIÓN: La causa del problema radica en la combinación de OpenJDK y Wayland. Con Oracle JDK / JRE (13.0.1) todo funciona bien.
java
linux
debian
openjdk-11
Reto
fuente
fuente
GraphicsEnvironment.getLocalGraphicsEnvironment().getScreenDevices()
Respuestas:
Si está utilizando wayland en lugar de XOrg, esto puede estar causando el problema, ya que es menos estable con interfaces Java para operaciones gráficas.
fuente