Как настроить DISPLAY для запуска Java JAR Swing Executable из Init.d

Мне нужно запустить исполняемый файл Java JAR Swing GUI в дистрибутиве Raspbian Wheezy Debian внутри устройства ARM во время загрузки.

Я следую этому как ссылка с myapp , myapp-start.sh и myapp-stop.sh , и это с возможными решениями (и другими более похожими). Но здесь нет ссылки на переменную DISPLAY.

Я проверил множество альтернатив, с

Пробовал и не применимо Опции :

  • /usr/bin/java -jar -Djava.awt.headless=true $myapp.jar
  • unset DISPLAY (внутри myapp-start.sh , выше предложения java -jar )

Ошибки:

  • java.awt.HeadlessException: No X11 DISPLAY variable was set, but this program performed an operation which requires it.

myapp-start.sh варианты (внутри myapp-start.sh , над предложением java -jar ):

  • export DISPLAY=:0
  • export DISPLAY=:0.0
  • export DISPLAY=localhost:0.0

Ошибки:

  • Can't connect to X11 window server using ':0.0' as the value of the DISPLAY variable
  • Client is not authorized to connect to ServerException in thread stack

Неисправленные варианты

  • ssh - X localhost : Как мне сделать ssh на сервере X11 ? Где я должен выполнить это в процессе init.d ?. Это стандартное решение для запуска программы Java с графическим интерфейсом ?.
  • USER=root внутри myapp-start.sh : myapp-start.sh останавливается и запрашивает пароль. Такой умный, процесс не начинается.
  • Если какой-либо из вышеперечисленных вариантов должен быть включен в другое место, кроме кода myapp-start.sh ? Где?

Не должно быть проще запускать один кусок кода при запуске ?.

Любой другой вариант будет оценен.

EDIT 2015-04-12

Новые параметры

В следующих вариантах я добавляю код внутри этого местоположения /etc/xdg/lxsession/LXDE-pi/autostart для выполнения после пользовательских журналов pi и запуска X11 (см. Предложение jlliagre ):

  • usr/bin/java -jar /home/pi/Embedded/bin/PowerBar.jar (без амперсанда)
  • export DISPLAY=:0.0 usr/bin/java -jar /home/pi/Embedded/bin/PowerBar.jar (без амперсанда)
  • /bin/bash /home/pi/Embedded/bin/powerbarstart.sh (без амперсанда)

Все они запускают приложение в фоновом режиме, то есть воспроизводится фоновая музыка, а графики доступны только через VNC по адресу :0 (с использованием TightVNC ). В качестве побочного эффекта заставка активируется, и приложение замерзает каждые 60 секунд. Обратите внимание, что это же место также используется для отключения экрана.

Есть ли отсутствующий вариант, или символ, я не включаю ?.

Решение Устройство было настроено как :1.0 вместо :0.0 . Изменение этого на myapp-start.sh решило проблему.

One Solution collect form web for “Как настроить DISPLAY для запуска Java JAR Swing Executable из Init.d”

Если ваше приложение не является интерактивным, вы можете запустить виртуальный сервер X11 и установить переменную DISPLAY для использования вашим приложением.

Возможные серверы X11, которые можно использовать таким образом:

  • Xvfb
  • Xdummy
  • Xvnc

Последний позволяет вам позже подключиться для просмотра и взаимодействия с экраном с клиентом VNC (vncviewer).

Если вы используете малиновый pi (или аналогичный) для автологизации пользователя pi в графической среде, вы можете запустить приложение в качестве пользователя pi и использовать дисплей :0 . Помните, что вы должны убедиться, что X11 завершил запуск, прежде чем делать это.

Изменить: похоже, что ваша конфигурация запускает сервер Xvnc сначала, когда пользователь pi запускает основной X-сервер фрейма в качестве пользователя root . В этом случае, как вы выяснили, ваше приложение должно быть запущено с root и используя :1 качестве своего дисплея.

В качестве альтернативы, если вам действительно нужно не запускать приложение один раз во время загрузки, но всякий раз, когда пользователь (обычно pi ) входит в графическую среду, добавьте его в файл rc, применимый к этой графической среде. Например, /etc/xdg/lxsession/LXDE-pi/autostart .

  • Возможно ли одновременно установить как Gstreamer 0.10, так и Gstreamer 1.0?
  • Инструмент командной строки для мониторинга Java-кучи
  • В чем смысл.: В этом заявлении linux?
  • Установка Oracle Java из зеркала в терминале
  • Как регистрировать вывод приложения-демона?
  • Установка jdk 1.4.2 на Fedora 14
  • установка Oracle 11g r2 на Linux 6.1
  • Почему я вижу «Не удалось найти tools.jar. Ожидалось найти его в ... », когда я запускаю ant (на RHEL 6.6), даже если путь установлен
  • Общесистемный способ установить или получить $ JAVA_HOME в Ubuntu?
  • Linux работает медленно с 0 swap left
  • Проблема с java3d
  • Linux и Unix - лучшая ОС в мире.