Java AWT требует X11, как использовать xvfb (Ubuntu 14.04)

У меня есть Java-приложение, которому требуется переменная X11 DISPLAY, исключение, которое я получаю:

    Caused by: java.awt.HeadlessException:
No X11 DISPLAY variable was set, but this program performed an operation which requires it.
        at java.awt.GraphicsEnvironment.checkHeadless(GraphicsEnvironment.java:204)
        at java.awt.Window.<init>(Window.java:536)
        at java.awt.Frame.<init>(Frame.java:420)

Я установил Xvfb на машине с Ubuntu:

root      1470  1469  0 02:40 pts/3    00:00:00 Xvfb :1 -screen 0 1152x900x8

Но я все еще получаю эту ошибку.

Когда я запускаю Xvfb, я получаю следующий ответ:

Initializing built-in extension Generic Event Extension
Initializing built-in extension SHAPE
Initializing built-in extension MIT-SHM
Initializing built-in extension XInputExtension
Initializing built-in extension XTEST
Initializing built-in extension BIG-REQUESTS
Initializing built-in extension SYNC
Initializing built-in extension XKEYBOARD
Initializing built-in extension XC-MISC
Initializing built-in extension SECURITY
Initializing built-in extension XINERAMA
Initializing built-in extension XFIXES
Initializing built-in extension RENDER
Initializing built-in extension RANDR
Initializing built-in extension COMPOSITE
Initializing built-in extension DAMAGE
Initializing built-in extension MIT-SCREEN-SAVER
Initializing built-in extension DOUBLE-BUFFER
Initializing built-in extension RECORD
Initializing built-in extension DPMS
Initializing built-in extension Present
Initializing built-in extension DRI3
Initializing built-in extension X-Resource
Initializing built-in extension XVideo
Initializing built-in extension XVideo-MotionCompensation
Initializing built-in extension SELinux
Initializing built-in extension GLX
[dix] Could not init font path element /usr/share/fonts/X11/cyrillic, removing from list!
[dix] Could not init font path element /usr/share/fonts/X11/100dpi/:unscaled, removing from list!
[dix] Could not init font path element /usr/share/fonts/X11/75dpi/:unscaled, removing from list!
[dix] Could not init font path element /usr/share/fonts/X11/Type1, removing from list!
[dix] Could not init font path element /usr/share/fonts/X11/100dpi, removing from list!
[dix] Could not init font path element /usr/share/fonts/X11/75dpi, removing from list!

и он не возвращается ко мне, поэтому я нажимаю "CTRL + C", чтобы вернуть контроль, но после просмотра "ps aux | grep Xvfb'Я вижу, что процесс запущен, поэтому я не уверен, сработал он или нет.

Любая помощь будет принята с благодарностью.

Спасибо

1 ответ

Решение

Вы не получаете сообщение об ошибке, это предупреждающие сообщения о старых шрифтах. Запустите виртуальный X-сервер в фоновом режиме (и / или с nohup), как

 nohup Xvfb :1 -screen 0 1152x900x8 &

А затем, чтобы использовать его, установите ваш дисплей на :1 на локальном хосте вроде

 export DISPLAY="localhost:1"
Другие вопросы по тегам