Ich erstelle eine Bildschirmaufnahme java.awt.Robot
unter Linux mit OpenJDK 11. Das Ergebnis unter Linux ist ein ganzes schwarzes Bild. Der gleiche Code funktioniert unter Ubuntu und Windows (natürlich unter Verwendung eines anderen Dateipfads).
Irgendeine Ahnung?
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();
}
}
UPDATE: Die Ursache des Problems liegt in der Kombination von OpenJDK und Wayland. Mit Oracle JDK / JRE (13.0.1) funktioniert alles einwandfrei.
GraphicsEnvironment.getLocalGraphicsEnvironment().getScreenDevices()