Windows no x11 display variable was set

«Нет переменной X11 DISPLAY» — что это значит?

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

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

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

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

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

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

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

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

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

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

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

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

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

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

для этого откройте PuTTy, перейдите в Connection => SSH => Tunnels и установите флажок Enable X11 forwarding.

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

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

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

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

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

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

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

Настройка Xming

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

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

Настройка PuTTy

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

Читайте также:  Команда выполнить главного меню windows

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

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

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

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

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

На сервере создается файл .Xauthority, и обратите внимание, что переменная DISPLAY уже установлена.

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

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

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

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

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

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

3) В БЫЛО (ВЕБСФЕРА); jconsole не сможет подключить свой процесс Java-сервера, на этот раз просто перейдите по ссылке, а затем попробуйте подключить ее. Это сработало для меня. Возможно, эта страница инициализирует некоторые переменные, чтобы позволить jconsole подключаться к этому серверу.

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

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

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

Если вы установили VNC в UNIX-бокс, где доступен дисплей; тогда Windows и NX Client не требуются. Шаг 1: Используйте VNC для подключения к Unix-серверу, где доступна консоль GUI.
Шаг 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.

Getting “ No X11 DISPLAY variable was set, but this program performed an operation which requires it.”

I am running a test on AWS through jenkins integration, this test requires a file to be uploaded, and to upload a file a upload(File Explorer) window is opened, which is triggering the error

[java] [INFO ] [2:53:49PM] Thread-1 (TestMethodRunner.java:188) — [java] No X11 DISPLAY variable was set, but this program performed an operation which requires it. [java] [INFO ] [2:53:49PM] Thread-1 (TestMethodRunner.java:189) — java.awt.HeadlessException: [java] No X11 DISPLAY variable was set, but this program performed an operation which requires it. [java] at sun.awt.HeadlessToolkit.getSystemClipboard(HeadlessToolkit.java:307) [java] at com.proquest.apps.etd.pqaf.layer.FileUploadWindow.uploadingFile(FileUploadWindow.java:50) [java] at com.proquest.apps.etd.regression.tests.SmokeTest.smokeTest(SmokeTest.java:100) [java] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [java] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) [java] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [java] at java.lang.reflect.Method.invoke(Method.java:606) [java] at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:45) [java] at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15) [java] at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:42) [java] at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20) [java] at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28) [java] at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:30) [java] at org.junit.rules.TestWatcher$1.evaluate(TestWatcher.java:47) [java] at org.junit.rules.TestWatcher$1.evaluate(TestWatcher.java:47) [java] at org.junit.rules.TestWatcher$1.evaluate(TestWatcher.java:47) [java] at org.junit.rules.RunRules.evaluate(RunRules.java:18) [java] at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:263) [java] at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:68) [java] at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:47) [java] at org.junit.runners.ParentRunner$3.run(ParentRunner.java:231) [java] at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:60) [java] at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:229) [java] at org.junit.runners.ParentRunner.access$000(ParentRunner.java:50) [java] at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:222) [java] at org.junit.runners.ParentRunner.run(ParentRunner.java:300) [java] at org.junit.runner.JUnitCore.run(JUnitCore.java:157) [java] at org.junit.runner.JUnitCore.run(JUnitCore.java:136) [java] at com.proquest.testing.TestMethodRunner.runUnitTest(TestMethodRunner.java:194) [java] at com.proquest.testing.TestMethodRunner.run(TestMethodRunner.java:62) [java] at com.proquest.testing.SimpleThread.run(SimpleThread.java:13)

  1. How to resolve this error, I can’t use putty to enable X11, the tests are ran through Jenkins , the test is executed every day automatically at the scheduled time, so i have to make it dynamic?
  2. Is there any ivy dependency for the «No X11 DISPLAY variable was set and Headless Exception» that can be used.

“No X11 DISPLAY variable” — what does it mean?

I am trying to install a Java application on my Linux machine (Slackware).

I have received the following error, and I do not understand it.

Could you advise me how to approach the problem? Thank you.

Here is what I get: (I see that some X11 DISPLAY variable needs to be set, but what value should I give it and how?)

10 Answers 10

If you’re on the main display, then

or if you’re using csh or tcsh

before running your app.

Actually, I’m surprised it isn’t set automatically. Are you trying to start this application from a non-graphic terminal? If not, have you modified the default .profile, .login, .bashrc or .cshrc?

Note that setting the DISPLAY to :0.0 pre-supposes that you’re sitting at the main display, as I said, or at least that the main display is logged on to your user id. If it’s not logged on, or it’s a different userid, this will fail.

If you’re coming in from another machine, and you’re at the main display of that machine and it’s running X, then you can use «ssh -X hostname» to connect to that host, and ssh will forward the X display back. ssh will also make sure that the DISPLAY environment variable is set correctly (providing it isn’t being messed with in the various dot files I mentioned above). In a «ssh -X» session, the DISPLAY environment variable will have a value like «localhost:11.0», which will point to the socket that ssh is tunnelling to your local box.

Are you running this from within an X11 environment? You can use a terminal window, but it has to be within X (either after a graphical login, or by running startx).

If you’re already within a graphical environment, try export DISPLAY=:0 for bash like shells (bash, sh, etc) or setenv DISPLAY :0 for C shell based shells (csh, tcsh, etc)

If you’ve connected from another machine via SSH, you use the -X option to display the graphical interface on the machine you’re sitting at (provided there’s an X server running there (such as xming for windows, and your standard Linux X server).

you must enable X11 forwarding in you PuTTy

to do so open PuTTy, go to Connection => SSH => Tunnels and check mark the Enable X11 forwarding

Also sudo to server and export the below variable here IP is your local machine’s IP

There are many ways to do this. I did something below convenient to me and always works fine.

  1. On your remote server, make sure to install xorg-x11-xauth, xorg-x11-font-utils, xorg-x11-fonts.
  2. Run the Xming Server on you local desktop
  3. On putty, before ssh to the server, enable the X11 forwarding and set the display location to localhost:0.0

On the server, .Xauthority file is generated and notice that the DISPLAY variable is already set.

To test it, type xclock or xeyes

Note: To switch user, copy the .Xauthority file to the home directory of the respective user and also export the DISPLAY variable from that user.

One more thing that might be the problem in a case similar to described — X is not forwarded and $DISPLAY is not set when ‘xauth’ program is not installed on the remote side. You can see it searches for it when you run «ssh -Xv ip_address», and, if not found, fails, which’s not seen unless you turn on verbose mode (a fail IMO). You can usually find ‘xauth’ in a package with the same name.

Very Easy, Had this same problem then what i did was to download and install an app that would help in displaying then fixed the error.

Download this app xming:

Install, then use settings on this link:

Installing/Configuring PuTTy and Xming

Once PuTTy and Xming have been downloaded to the PC, install according to their respective instructions.

Configuring Xming

Once Xming is installed, run the application called ‘XLaunch’ and verify that the settings are as shown:

  • select Default entries on Display Settings windows, click next
  • click next on Session Type window.
  • click next on Additional parameters window(Notice clipboard checkbox is true)
  • save configuration and click to finish.

Configuring PuTTy

After installing PuTTy, double-click on the PuTTy icon on the desktop and configure as shown:

This shows creating a login profile then saving it.

  • On ssh -> X11, click on checkbox to enable X11 forwarding.
  • on X display location textbox, type localhost:0.0

save profile then connect remotely to server to test.

I have had the same issue in Ubuntu 14.04.01 when I tried to install JDK 8 and Netbeans if I launch the script inside a Byobu terminal (maybe with Screens happens the same).

Just exit Byobu and (in a graphical terminal) run the script.

1) When you are exporting the DISPLAY to other machine, ensure you entered the command xhost + on that machine. This command allows to other machine to export their DISPLAY on this machine. There may be security constraints, just know about it. Need to check ssh -X MachineIP will not require xhost + ?

2) Some times JCONSOLE won’t show all its process, since those JVM process may run with different user and you are exporting the DISPLAY with another user. so better follow CD_DIR>sudo ./jconsole

3) In WAS (WEBSPHERE); jconsole won’t be able to connect its java server process, that time just go till the link, then try connecting it. This worked for me. May be this page is initializing some variables to enable jconsole to connect with that server.

WAS console > Application servers > server1 > Process definition > Java Virtual Machine

I have faced the same issue with AIX (where command line interface only available, There is no DISPLAY UI) machine. I resolved by installing

Step 1: Through that Windows machine, I connected with unix box where GUI console is available.
Step 2: SSH to the AIX box from that UNIX box.
Step 3: set DISPLAY like «export DISPLAY=UNIXMACHINE:NXClientPORTConnectedMentionedOnTitle»
Step 4: Now if we launch any programs which requires DISPLAY; it will be launched on this UNIX box.

If you installed VNC on UNIX box where display is available; then Windows and NX Client is not required. Step 1: Use VNC to connect with Unix box where GUI console is available.
Step 2: SSH to the AIX box from that UNIX box.
Step 3: set DISPLAY like «export DISPLAY=UNIXMACHINE:VNCPORT»
Step 4: Now if we launch any programs which requires DISPLAY; it will be launched on this UNIX box.

Step 1: SSH to the AIX box from that UNIX box.
Step 2: set DISPLAY like «export DISPLAY=UNIXMACHINE:VNCPORT»
Step 3: Now if we launch any programs which requires DISPLAY; it will be launched on this UNIX box.

Читайте также:  Как убрать архивацию windows
Оцените статью