Ответ 1
Поддержка (безглавых) CI-серверов для тестирования JavaFX недоступна до JavaFX 8.
Ответ основан на информации в этих записях отслеживания ошибок JavaFX:
- JDK-8088651 "Инструмент для инструментов Headless Glass должен быть подключен к модулям Quantum и Prism"
- JDK-8091286 "Квантум нужны безголовые и головные тесты" ).
Обновление от 8 января 2015 г.
Связанные записи отслеживания ошибок JavaFX не были реализованы для Java 8 и переназначены на Java 9.
Исходный код Java 8 в настоящее время включает в себя минимальный движок рендеринга с именем Monocle, который обеспечивает безглавую рендеринг (и рендеринг для различных других целевых платформ) для компонентов JavaFX. Я никогда не использовал Monocle и не могу предоставить подробные инструкции о том, как использовать его для безголового рендеринга. Я считаю, что использовать Monocle, вам в настоящее время необходимо выполнить пользовательскую сборку JavaFX из исходного кода (как я думаю, Monocle обычно поставляется только в встроенных версиях JavaFX, что не является стандартной версией JavaFX, которая поставляется с настольными средами Java и средами JDK),
Информация о Monocle доступна на JavaFX wiki.
Несмотря на то, что рендеринг без головок предоставляется Monocle, я не думаю, что использование Monocle для выполнения безгласного рендеринга официально поддерживается Oracle (хотя я не думаю, что обезглавленный рендеринг JavaFX в любой форме официально поддерживается, поэтому я предполагаю, что если Монокл хорошо работает для вас, обязательно используйте его).
Безголовый рендеринг в Monocle - это реализация программного обеспечения, поэтому выполнение некоторых графических примитивов может быть медленнее, чем стандартная аппаратная ускоренная работа JavaFX в среде рабочего стола.
Могут быть другие методы, позволяющие JavaFX запускаться в безголовой среде, о которой я не знаю.
Если вы сомневаетесь, спросите разработчиков JavaFX в рассылке openjfx-dev.
Если вы работаете под Linux, использование Xvfb, как было предложено Жаном Зарниковым, вероятно, является хорошим решением и, вероятно, предпочтительнее использовать Monocle.