«No X11 DISPLAY variable was set» error came on Linux using Sikuli Stand Alone api #41
Comments
doubleshow commented Jun 13, 2013
Original author: dharmesh. @gmail.com (March 30, 2013 16:19:18)
What steps will reproduce the problem?
- I Created a sample script like one below on my GNU/Linux machine using the Eclipse IDE. I added the sikuli standalone .jar.
import java.io.File;
import java.net.MalformedURLException;
import java.net.URL;
import org.sikuli.api.*;
import org.sikuli.api.robot.Keyboard;
import org.sikuli.api.robot.Mouse;
import org.sikuli.api.robot.desktop.DesktopKeyboard;
import org.sikuli.api.robot.desktop.DesktopMouse;
import org.sikuli.api.visual.Canvas;
import org.sikuli.api.visual.DesktopCanvas;
import static org.sikuli.api.API.*;
public class FirstStandAlone
<
// //Target imageTarget = new ImageTarget(new File(DataFile.USERIDTEXT));
Mouse mouse = new DesktopMouse();
mouse.click(result.getCenter());
After running this program I got the below error.
I added the Path and Sikuli_Home variable to my Eclipse Run configuration, after this the above error did not come.
Now I ran the Test case and got the below error. I have set up my VNC with 3 screen resolutions.
Exception in thread «main» java.awt.HeadlessException:
No X11 DISPLAY variable was set, but this program performed an operation which requires it.
at java.awt.Desktop.getDesktop(Desktop.java:142)
at org.sikuli.api.API.browse(API.java:20)
at FirstStandAlone.main(FirstStandAlone.java:18)
What is the expected output? What do you see instead?
What version of the product are you using? On what operating system?
Please provide any additional information below.
The text was updated successfully, but these errors were encountered:
Источник
«Нет переменной 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 на рабочем столе и настройте, как показано:
Это показывает создание профиля входа и его сохранение.
- В ssh -> X11 установите флажок, чтобы включить пересылку X11.
- в текстовом поле местоположения отображения X введите localhost: 0.0
сохраните профиль, затем подключитесь удаленно к серверу для тестирования.
Есть много способов сделать это. Сделал что-то ниже удобное для меня и всегда нормально работает.
- На удаленном сервере обязательно установите xorg-x11-xauth, xorg-x11-font-utils, xorg-x11-fonts.
- Запустите сервер Xming на локальном рабочем столе
- В 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.
Источник
«Нет переменной отображения X11» — что это значит?
Я пытаюсь установить приложение Java на своей машине Linux (Slackware).
Я получил следующую ошибку, и я ее не понимаю.
не могли бы вы посоветовать мне, как подойти к проблеме? Спасибо.
вот что я получаю: (я вижу, что некоторые X11 дисплей переменная должна быть установлена, но какое значение я должен дать ей и как?)
9 ответов
Если вы находитесь на главном экране, затем
или если вы используете csh или tcsh
перед запуском приложения.
на самом деле, я удивлен, что он не установлен автоматически. Вы пытаетесь запустить это приложение с графическим терминалом? Если нет, измените значение по умолчанию .профиль. ,вход. ,bashrc or .cshrc по?
обратите внимание, что установка дисплея на: 0.0 предварительно предполагает, что вы сидите на главном дисплее, как я уже сказал, или на по крайней мере, основной дисплей входит в ваш идентификатор пользователя. Если он не вошел в систему или это другой идентификатор пользователя, это не удастся.
Если вы входите с другой машины, и вы находитесь на главном дисплее этой машины, и на ней работает X, то вы можете использовать «ssh-X hostname» для подключения к этому хосту, и ssh будет пересылать X-дисплей обратно. ssh также гарантирует, что переменная среды отображения установлена правильно (при условии, что она не путается в различных файлах dot Я уже упоминал выше). В сеансе» ssh-X «переменная среды отображения будет иметь значение» localhost:11.0″, которое будет указывать на сокет, который ssh туннелирует в ваш локальный ящик.
вы запускаете это из среды X11? Вы можете использовать окно терминала, но оно должно быть в пределах X (либо после графического входа в систему, либо при запуске startx).
Если вы уже находитесь в графической среде, попробуйте экспортировать DISPLAY=: 0 для bash, таких как оболочки (bash, sh и т. д.) или setenv DISPLAY: 0 для оболочек на основе C (csh, tcsh и т. д.)
Если вы подключились с другой машины через SSH, вы используете опцию-X для отображения графического интерфейса на машина, на которой вы сидите (при условии, что там работает X-сервер (например, xming для windows и ваш стандартный Linux X-сервер).
вы должны включить проброс X11 в тебя замазка
для этого откройте PuTTy, перейдите в соединение = > SSH = > туннели и галочка включить переадресацию X11
также sudo на сервер и экспортировать нижеприведенную переменную здесь IP-это IP вашей локальной машины
еще одна вещь, которая может быть проблемой в случае, аналогичном описанному — X не пересылается и $DISPLAY не устанавливается, когда программа «xauth» не установлена на удаленной стороне. Вы можете видеть, что он ищет его при запуске «ssh-Xv ip_address», и, если не найден, терпит неудачу, что не видно, если вы не включите подробный режим (сбой IMO). Обычно вы можете найти «xauth» в пакете с тем же именем.
очень легко, была эта же проблема, то, что я сделал, это загрузить и установить приложение, которое поможет в отображении затем исправлена ошибка.
Скачать Это приложение xming:
установите, затем используйте настройки по этой ссылке:
установка / настройка шпатлевки и Xming
после того, как PuTTy и Xming были загружены на ПК, установите в соответствии с их соответствующими инструкциями.
Настройка Xming
после установки Xming запустите приложение под названием «XLaunch» и убедитесь, что настройки указаны следующим образом:
- выберите записи по умолчанию в окнах настроек дисплея, нажмите кнопку Далее
- нажмите кнопку Далее в окне тип сессии.
- нажмите Далее на дополнительные окно «Параметры» (флажок «буфер обмена» установлен)
- сохранить конфигурацию и нажмите кнопку до конца.
Настройка Шпатлевка
после установки PuTTy дважды щелкните значок PuTTy на рабочем столе и настройте, как показано:
Это показывает создание профиля входа в систему, а затем его сохранение.
- на ssh — > X11, нажмите на флажок, чтобы включить пересылку X11.
- в текстовом поле расположение дисплея X введите localhost: 0.0
сохранить профиль, а затем подключиться удаленно к серверу для тестирования.
У меня была такая же проблема в Ubuntu 14.04.01, когда я пытался установить JDK 8 и Netbeans, если я запускаю скрипт внутри терминала Byobu (возможно, с экранами происходит то же самое).
просто выйдите из Byobu и (в графическом терминале) запустите скрипт.
1) при экспорте дисплея на другую машину убедитесь, что вы ввели команду xhost + на этой машине. Эта команда позволяет другой машине экспортировать свой дисплей на эту машину. Могут быть ограничения безопасности, просто знайте об этом. Нужно проверить ssh -X MachineIP не требуется xhost + ?
2) несколько раз JCONSOLE не покажет весь свой процесс, так как этот процесс JVM может работать с другим пользователем, и вы экспортируете дисплей с другой пользователь. так что лучше следуйте CD_DIR>sudo ./jconsole
3) в WAS (WEBSPHERE); jconsole не сможет подключить свой серверный процесс java, в это время просто перейдите по ссылке, а затем попробуйте подключить его. Это сработало для меня. Возможно, эта страница инициализирует некоторые переменные, чтобы jconsole мог подключиться к этому серверу.
консоль WAS > серверы приложений > server1 > определение процесса > виртуальная машина Java
я столкнулся с той же проблемой с AIX (где команда линия интерфейс только доступный, никакая машина дисплея УИ). Я решил, установив
Шаг 1: через эту машину Windows я подключился к Unix box, где доступна консоль GUI.
Шаг 2: SSH в поле AIX из этого окна UNIX.
Шаг 3: Установите дисплей как «export DISPLAY=UNIXMACHINE:NXClientPORTConnectedMentionedOntitle»
Шаг 4: Теперь, если мы запускаем какие-либо программы, которые требуют отображения; это будет запущен на этом Unix box.
если вы установили VNC в поле UNIX, где доступен дисплей; тогда клиент Windows и NX не требуется. Шаг 1: Используйте VNC для подключения к Unix box, где доступна консоль GUI.
Шаг 2: SSH в поле AIX из этого окна UNIX.
Шаг 3: Установите дисплей как «export DISPLAY=UNIXMACHINE:VNCPORT»
Шаг 4: Теперь, если мы запустим какие-либо программы, которые требуют отображения; это будет запущен на этой коробке UNIX.
Шаг 1: SSH в поле AIX из этого окна UNIX.
Шаг 2: Установите дисплей как «export DISPLAY=UNIXMACHINE:VNCPORT»
Шаг 3: Теперь, если мы запустим какие-либо программы, которые требуют отображения; он будет запущен на этом поле UNIX.
для тех, кто пытается получить приложение X Window, работающее с Windows из Linux:
Что сработало для меня, так это настроить xming-сервер на моей машине с windows, установить опцию переадресации X11 в putty при подключении к хосту linux и ввести мой ip-адрес windows с портом отображения, а затем переменную отображения с моим IP-адресом windows:0.0
Не забудьте добавить IP-адрес хостов linux в X0.файл hosts, чтобы убедиться, что сервер xming принимает трафик от этого хоста. Мне потребовалось время, чтобы понять это.
Не забудьте выполнить «host +» на вашей машине отображения «home», и когда вы ssh на машину, вы делаете «ssh-X hostname»
Источник