"Нет переменной X11 DISPLAY" - что это значит?

Я пытаюсь установить приложение 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)

Ответ 1

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

export DISPLAY=:0.0

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

setenv DISPLAY :0.0

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

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

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

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

Ответ 2

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

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

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

Ответ 3

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

для этого откройте PuTTy, перейдите в Connection => SSH => Tunnels и отметьте опцию Enable X11 forwarding

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

export DISPLAY=10.75.75.75:0.0

enter image description here

Ответ 4

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

Ответ 5

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

Загрузите это приложение xming:

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

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

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

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

После того, как PuTTy и Xming были загружены на ПК, установите их в соответствии с их соответствующими инструкциями.

Настройка Xming

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

  • выберите "По умолчанию" в окне "Настройки экрана", нажмите "Далее"
  • щелкните по окну типа сеанса.
  • нажмите "Далее" в окне "Дополнительные параметры" (флажок "Уведомлять буфер обмена" ).
  • сохранить конфигурацию и нажать, чтобы завершить.

Настройка PuTTy

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

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

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

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

Ура!!!

Ответ 6

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

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

Ответ 7

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

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

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

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

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


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

Клиент NX для Windows

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

VNC

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

ELSE

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

Ответ 8

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

Что работало для меня, так это настроить сервер xming на моем компьютере с Windows, установить опцию переадресации X11 в putty, когда я подключаюсь к хосту linux и помещаю в свой ip-адрес Windows с портом дисплея, а затем отображаемую переменную с моим IP-адресом Windows адрес: 0.0

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

Ответ 9

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

  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 от этого пользователя.

Ответ 10

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