«Нет переменной дисплея X11» - что это значит? - PullRequest
92 голосов
/ 19 марта 2009

Я пытаюсь установить приложение Java на моем компьютере с Linux (Slackware).

Я получил следующую ошибку и не понимаю ее.

Не могли бы вы посоветовать мне, как подойти к проблеме? Спасибо.

Вот что я получаю: (Я вижу, что необходимо установить некоторую переменную X11 DISPLAY , но какое значение я должен дать и как?)

~$ java -jar gate-5.0-beta1-build3048-installer.jar
- ERROR -

java.awt.HeadlessException:
No X11 DISPLAY variable was set, but this program performed an operation which requires it.
java.awt.HeadlessException:
No X11 DISPLAY variable was set, but this program performed an operation which requires it.
at java.awt.GraphicsEnvironment.checkHeadless(Graphic sEnvironment.java:159)
at java.awt.Window.<init>(Window.java:407)
at java.awt.Frame.<init>(Frame.java:402)
at net.sourceforge.mlf.metouia.borders.MetouiaDotsBuf fer.<init>(MetouiaDotsBuffer.java:105)
at net.sourceforge.mlf.metouia.borders.MetouiaDots.<i nit>(MetouiaDots.java:66)
at net.sourceforge.mlf.metouia.borders.MetouiaToolBar Border.<init>(MetouiaToolBarBorder.java:49)
at net.sourceforge.mlf.metouia.MetouiaLookAndFeel.ini tComponentDefaults(MetouiaLookAndFeel.java:241)
at javax.swing.plaf.basic.BasicLookAndFeel.getDefault s(BasicLookAndFeel.java:130)
at javax.swing.plaf.metal.MetalLookAndFeel.getDefault s(MetalLookAndFeel.java:1591)
at javax.swing.UIManager.setLookAndFeel(UIManager.jav a:537)
at javax.swing.UIManager.setLookAndFeel(UIManager.jav a:581)
at com.izforge.izpack.installer.GUIInstaller.loadLook AndFeel(GUIInstaller.java:373)
at com.izforge.izpack.installer.GUIInstaller.<init>(G UIInstaller.java:116)
at sun.reflect.NativeConstructorAccessorImpl.newInsta nce0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInsta nce(NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newI nstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Construc tor.java:513)
at java.lang.Class.newInstance0(Class.java:355)
at java.lang.Class.newInstance(Class.java:30
at com.izforge.izpack.installer.Installer.main(Instal ler.java:62)

Ответы [ 10 ]

103 голосов
/ 19 марта 2009

Если вы находитесь на главном дисплее, то

export DISPLAY=:0.0

или если вы используете csh или tcsh

setenv DISPLAY :0.0

перед запуском приложения.

На самом деле, я удивлен, что он не устанавливается автоматически. Вы пытаетесь запустить это приложение с неграфического терминала? Если нет, изменили ли вы значения по умолчанию .profile, .login, .bashrc или .cshrc?

Обратите внимание, что установка DISPLAY в: 0.0 предполагает, что вы сидите за главным дисплеем, как я уже сказал, или, по крайней мере, что основной дисплей зарегистрирован под вашим идентификатором пользователя. Если он не вошел в систему, или это другой ID пользователя, это не удастся.

Если вы входите с другого компьютера и находитесь на главном дисплее этого компьютера, на котором запущен X, вы можете использовать «ssh -X hostname» для подключения к этому хосту, и ssh перешлет Х дисплей обратно. ssh также удостоверится, что переменная окружения DISPLAY установлена ​​правильно (при условии, что она не запуталась в различных точечных файлах, которые я упоминал выше). В сеансе "ssh -X" переменная окружения DISPLAY будет иметь значение, подобное "localhost: 11.0", которое будет указывать на сокет, который ssh ​​туннелирует к вашему локальному блоку.

10 голосов
/ 19 марта 2009

Вы запускаете это из среды X11? Вы можете использовать окно терминала, но оно должно быть в пределах X (либо после графического входа в систему, либо путем запуска startx).

Если вы уже находитесь в графической среде, попробуйте экспортировать DISPLAY =: 0 для bash, например оболочек (bash, sh и т. Д.) Или setenv DISPLAY: 0 для оболочек на основе оболочки C (csh, tcsh и т. Д.)

Если вы подключились с другого компьютера через SSH, вы используете опцию -X для отображения графического интерфейса на машине, на которой вы сидите (при условии, что там работает X-сервер (например, xming для Windows и ваш стандартный сервер Linux X).

6 голосов
/ 31 августа 2016

Вы должны включить Пересылку X11 в вашем PuTTy

для этого откройте PuTTy, перейдите на Соединение => SSH => Туннели и отметьте Включить пересылку X11

Также sudo на сервер и экспорт нижеприведенной переменной здесь IP - это IP-адрес вашего локального компьютера

export DISPLAY=10.75.75.75:0.0

enter image description here

4 голосов
/ 15 июня 2015

Еще одна вещь, которая может быть проблемой в случае, аналогичном описанному, - X не пересылается и $ DISPLAY не устанавливается, когда программа 'xauth' не установлена ​​на удаленной стороне. Вы можете видеть, что он ищет его, когда вы запускаете «ssh -Xv ip_address», и, если не найден, происходит сбой, чего не видно, если вы не включите подробный режим (сбой IMO). Обычно вы можете найти 'xauth' в пакете с тем же именем.

2 голосов
/ 28 января 2016

Очень просто, если бы я столкнулся с этой же проблемой, скачал и установил приложение, которое помогло бы отобразить, а затем исправил ошибку.

Скачать это приложение xming:

http://sourceforge.net/project/downloading.php?

Установите, затем используйте настройки по этой ссылке:

http://www.geo.mtu.edu/geoschem/docs/putty_install.html или выполните следующие действия:

Установка / настройка PuTTy и Xming

После загрузки PuTTy и Xming на ПК установите их в соответствии с их инструкциями.

Настройка Xming

После установки Xming запустите приложение под названием «XLaunch» и убедитесь, что настройки соответствуют приведенным ниже:

  • выберите Записи по умолчанию в окнах настроек дисплея, нажмите Далее
  • щелкните далее в окне Тип сеанса.
  • нажмите кнопку «Далее» в окне «Дополнительные параметры» (флажок Notice clipboard имеет значение true)
  • сохранить конфигурацию и нажать для завершения.

Настройка PuTTy

После установки PuTTy дважды щелкните значок PuTTy на рабочем столе и настройте его, как показано на рисунке:

Показывает создание профиля входа и сохранение его.

  • В ssh -> X11 установите флажок, чтобы включить пересылку X11.
  • в текстовом поле расположения дисплея X, введите localhost: 0.0

сохранить профиль, а затем удаленно подключиться к серверу для проверки.

Ура !!!

0 голосов
/ 22 мая 2019

Есть много способов сделать это. Я сделал что-то ниже удобное для меня и всегда отлично работает.

  1. На вашем удаленном сервере обязательно установите xorg-x11-xauth, xorg-x11-font-utils, xorg-x11-fonts.
  2. Запустите сервер Xming на локальном рабочем столе
  3. На шпатлевке, перед ssh на сервер, включите пересылку X11 и установите для местоположения дисплея значение localhost: 0.0
  4. На сервере создается файл .Xauthority, и обратите внимание, что переменная DISPLAY уже установлена.

    $ xauth list

    $ xauth add

Чтобы проверить это, наберите xclock или xeyes

Примечание : чтобы переключить пользователя, скопируйте файл .Xauthority в домашний каталог соответствующего пользователя, а также экспортируйте переменную DISPLAY от этого пользователя.

0 голосов
/ 20 апреля 2017

Для тех, кто пытается получить приложение X Window, работающее из Windows из Linux:

Что мне помогло, так это настроить сервер xming на моей машине с Windows, установить опцию переадресации X11 в putty, когда я подключаюсь к хосту linux и вставляю свой IP-адрес windows с портом дисплея, а затем переменную display с моим IP-адресом windows адрес: 0,0

Не забудьте добавить IP-адрес хоста linux в файл X0.hosts, чтобы сервер xming принимал трафик с этого хоста. Мне понадобилось время, чтобы понять это.

0 голосов
/ 08 декабря 2014

Первоначальная проверка.

1) При экспорте DISPLAY на другой аппарат убедитесь, что на этом аппарате введена команда xhost +. Эта команда позволяет другим машинам экспортировать их DISPLAY на этот компьютер. Там могут быть ограничения безопасности, просто знать об этом. Нужно проверить ssh -X MachineIP, не потребует xhost +?

2) Иногда JCONSOLE не отображает весь свой процесс, поскольку этот процесс JVM может выполняться с другим пользователем, и вы экспортируете DISPLAY с другим пользователем. так что лучше следуйте CD_DIR>sudo ./jconsole

3) В WAS (WEBSPHERE); jconsole не сможет подключить свой процесс java-сервера, в этот раз просто перейдите по ссылке, затем попробуйте подключить ее. Это сработало для меня. Может быть, эта страница инициализирует некоторые переменные, чтобы jconsole могла соединиться с этим сервером.

Консоль WAS> Серверы приложений> server1> Определение процесса> Виртуальная машина Java


Я столкнулся с той же проблемой с машиной AIX (где доступен только интерфейс командной строки, нет интерфейса DISPLAY UI). Я решил, установив

Клиент NX для Windows

Шаг 1. Через эту машину с Windows я подключился к Unix, где доступна консоль с графическим интерфейсом.
Шаг 2: SSH к блоку AIX из этого блока UNIX.
Шаг 3: установите DISPLAY как «export DISPLAY = UNIXMACHINE: NXClientPORTConnectedMentionedOnTitle»
Шаг 4: Теперь, если мы запустим какие-либо программы, которые требуют DISPLAY; он будет запущен в этом окне UNIX.

VNC

Если вы установили VNC в окне UNIX, где доступен дисплей; тогда Windows и NX Client не требуются. Шаг 1: Используйте VNC для соединения с Unix, где доступна консоль с графическим интерфейсом.
Шаг 2: SSH к блоку AIX из этого блока UNIX.
Шаг 3: установите DISPLAY как "export DISPLAY = UNIXMACHINE: VNCPORT"
Шаг 4: Теперь, если мы запустим какие-либо программы, которые требуют DISPLAY; он будет запущен в этом окне UNIX.

ИЛИ

Шаг 1: SSH к блоку AIX из этого блока UNIX.
Шаг 2: установите DISPLAY как "export DISPLAY = UNIXMACHINE: VNCPORT"
Шаг 3: Теперь, если мы запустим какие-либо программы, которые требуют DISPLAY; он будет запущен в этой коробке UNIX.

0 голосов
/ 01 октября 2014

У меня была такая же проблема в Ubuntu 14.04.01, когда я пытался установить JDK 8 и Netbeans, если я запускаю скрипт внутри терминала Byobu (возможно, с Screens происходит то же самое).

Просто выйдите из Byobu и (в графическом терминале) запустите скрипт.

0 голосов
/ 25 августа 2011

Не забудьте выполнить "host +" на вашем "домашнем" дисплее, и когда вы подключаетесь к ssh, вы делаете "ssh -x hostname"

...