Как запустить приложение удаленно, чтобы графический интерфейс отображался локально

Как запустить приложение удаленно, чтобы графический интерфейс отображался локально

Это вопрос новичка, я знаю... но я искал и начинаю расстраиваться. Я знаю, как обращаться с Lunux, но мне никогда не приходилось иметь дело с XServer.

Вопрос 1:

Я подключаюсь по SSH из OSX к настольному компьютеру с UBUNTU 14.04 как пользователь alpha.

Пользователь alpha также вошел в систему локально на этом рабочем столе.

Я хочу запустить (через свой терминал) приложение, которое должно отображаться на машине UBUNTU (чтобы оно было видно на локальном дисплее локально вошедшего в систему пользователя).

Сегодня я получаю эту ошибку, когда делаю это из терминала OSX:

15:21:20:157 AWT-EventQueue-0: Error
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:207)
at java.awt.Window.<init>(Window.java:535)
at java.awt.Frame.<init>(Frame.java:420)
<etc>

ПРИМЕЧАНИЕ: Когда я делаю это из локального терминала (в UBUNTU), все работает как надо, так что с программой все в порядке.

Вопрос 2:

Если бы машина UBUNTU была без монитора, как бы я перенаправил окна на другую машину, например, на мой Mac?

Спасибо, Питер.

решение1

По второму вопросу: добавьте параметр -X (или -Y для доверенного соединения) при подключении по ssh и убедитесь, что на вашем Mac есть X11. Пример:

ssh -X [email protected]

Это направит ваши окна X11 на отображение на локальном X-сервере на вашем Mac.

Видеть:https://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man1/ssh.1.html

По первому вопросу:

ДИСПЛЕЙ и ВЛАСТЬ

Для подключения к X-дисплею программе X необходимы два вида информации.

  • Ему нужен адрес дисплея, который обычно равен :0, если вы вошли в систему локально, или :10, :11 и т. д., если вы вошли в систему удаленно (но число может меняться в зависимости от того, сколько соединений X активно). Адрес дисплея обычно указывается в переменной среды DISPLAY.

  • Ему нужен пароль для отображения. Пароли отображения X называются волшебными куки. Волшебные куки не указываются напрямую: они всегда хранятся в файлах полномочий X, которые представляют собой набор записей в форме «display :42 has cookie 123456». Файл полномочий X обычно указывается в переменной окружения XAUTHORITY. Если $XAUTHORITY не установлен, программы используют ~/.Xauthority.

Извлечен из: https://unix.stackexchange.com/a/10126

Подробное объяснение можно найти в этом посте.

решение2

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

например.export DISPLAY=:0

Что касается вашего второго вопроса, самый простой способ — настроить VNC-сервер на Ubuntu и использовать VNC-клиент для подключения с вашего Mac.

Как:http://www.howtoforge.com/how-to-install-vnc-server-on-ubuntu-14.04

решение3

1) Я не уверен, может попробовать export DISPLAY=0?

2) Чтобы отобразить графический интерфейс на используемой вами машине, запустите SSH с опцией -Y.

Связанный контент