Java.awt.Robot делает пустой (серый) снимок экрана на PuTTy

Среди прочего я пытаюсь автоматизировать скриншоты. Для этого у меня есть сценарий 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 12.07.2018 04:53

@MadProgrammer - да, он работает в безголовом режиме. Я запускаю виртуальную машину Windows 7 поверх Windows 7.

Rajat 12.07.2018 08:24
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
2
119
0

Другие вопросы по теме