Среди прочего я пытаюсь автоматизировать скриншоты. Для этого у меня есть сценарий bash, который выполняет остальную работу, а затем вызывает мою банку с помощью команды java -jar.
В своем Java-коде я использую java.awt.Robot для создания снимка экрана. По сути, это мой код.
BufferedImage image = new Robot().createScreenCapture(new Rectangle(Toolkit.getDefaultToolkit().getScreenSize()));
ImageIO.write(image, "png", new File("C:\\Screenshot\\CurrentScreenshot.png"));
Это отлично работает, когда я запускаю код Java в своей локальной среде IDE и делаю снимок экрана. Однако, когда я упаковываю свою банку, развертываю ее и запускаю свой сценарий bash, он делает только пустой снимок экрана, который полностью серого цвета. Размер изображения - полноэкранный (136х768). Не знаю, почему это происходит.
Я подключаюсь к своему серверу через PuTTY, может быть, это из-за этого? Благодаря помощи, которую я смог найти в Интернете, я установил Xming на свою машину (виртуальная машина под управлением Windows 7) и запустил Xserver. Я настроил PuTTY, чтобы разрешить перенаправление X11. Но мне все равно не удалось заставить работать скриншот. (Может ли моя конфигурация быть здесь потенциальной проблемой?)
Я также пробовал использовать этот фрагмент кода, который, на удивление, у меня не сработал.
Robot robot = new Robot();
robot.keyPress(KeyEvent.VK_ALT);
robot.keyPress(KeyEvent.VK_PRINTSCREEN);
robot.delay(100);
robot.keyRelease(KeyEvent.VK_PRINTSCREEN);
robot.keyRelease(KeyEvent.VK_ALT);
Я не могу использовать ImageMagick или подобное из-за ограничений на моем рабочем месте.
Есть идеи о том, почему я получаю серый снимок экрана и как его решить?
@MadProgrammer - да, он работает в безголовом режиме. Я запускаю виртуальную машину Windows 7 поверх Windows 7.




Ваш сервер работает в автономном режиме?