У меня есть сценарий с использованием java для подключения к отображению X11 в порту 10.0 на localhost
но я всегда получаю эту ошибку
java.lang.InternalError: Can't connect to X11 window server using 'localhost:10.0' as the value of the DISPLAY variable.
at sun.awt.X11GraphicsEnvironment.initDisplay(Native Method)
at sun.awt.X11GraphicsEnvironment.access$200(X11GraphicsEnvironment.java:62)
at sun.awt.X11GraphicsEnvironment$1.run(X11GraphicsEnvironment.java:178)
at java.security.AccessController.doPrivileged(Native Method)
at sun.awt.X11GraphicsEnvironment.<clinit>(X11GraphicsEnvironment.java:142)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:186)
at java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment(GraphicsEnvironment.java:82)
at sun.awt.X11.XToolkit.<clinit>(XToolkit.java:112)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:186)
at java.awt.Toolkit$2.run(Toolkit.java:849)
at java.security.AccessController.doPrivileged(Native Method)
at java.awt.Toolkit.getDefaultToolkit(Toolkit.java:841)
at ij.io.Opener.openJpegOrGif(Opener.java:367)
at ij.io.Opener.openImage(Opener.java:220)
at ij.io.Opener.openImage(Opener.java:249)
at ij.io.Opener.open(Opener.java:116)
at ij.IJ.open(IJ.java:1112)
at ij.macro.Functions.open(Functions.java:2006)
at ij.macro.Functions.doFunction(Functions.java:129)
at ij.macro.Interpreter.doStatement(Interpreter.java:205)
at ij.macro.Interpreter.doBlock(Interpreter.java:515)
at ij.macro.Interpreter.runUserFunction(Interpreter.java:278)
at ij.macro.Interpreter.getFactor(Interpreter.java:1200)
at ij.macro.Interpreter.getTerm(Interpreter.java:1162)
at ij.macro.Interpreter.getExpression(Interpreter.java:1145)
at ij.macro.Interpreter.getBooleanExpression(Interpreter.java:881)
at ij.macro.Interpreter.getLogicalExpression(Interpreter.java:857)
at ij.macro.Interpreter.getBoolean(Interpreter.java:850)
at ij.macro.Interpreter.doIf(Interpreter.java:829)
at ij.macro.Interpreter.doStatement(Interpreter.java:217)
at ij.macro.Interpreter.doBlock(Interpreter.java:515)
at ij.macro.Interpreter.doStatement(Interpreter.java:241)
at ij.macro.Interpreter.doIf(Interpreter.java:831)
at ij.macro.Interpreter.doStatement(Interpreter.java:217)
at ij.macro.Interpreter.doStatements(Interpreter.java:195)
at ij.macro.Interpreter.run(Interpreter.java:99)
at ij.macro.Interpreter.run(Interpreter.java:65)
at ij.macro.Interpreter.run(Interpreter.java:75)
at ij.plugin.Macro_Runner.runMacro(Macro_Runner.java:127)
at ij.plugin.Macro_Runner.runMacroFile(Macro_Runner.java:112)
at ij.IJ.runMacroFile(IJ.java:103)
at ij.ImageJ.main(ImageJ.java:517)
Я перепробовал все, чтобы решить эту проблему, например:
export DISPLAY=:10.0
export DISPLAY=localhost:10.0
Я пробовал также порт 0.0, но всегда получаю одну и ту же ошибку
после попытки xhost
xhost +local:all
xhost: unable to open display ""
xhost: unable to open display ":10.0"
Как я могу это исправить? Я думал, что X-сервер не работает, поэтому я попробовал, startx
он говорит, что он работает на этом порту
моя система - версия сервера Ubuntu 10.04
unset DISPLAY
помогло мне (сexport DISPLAY=:0
ошибкой я получилCan't connect to X11 window server using ':0'
Вам нужно указать
-Djava.awt.headless=true
параметр при запуске.источник
ij.io.Opener.openJpegOrGif
, мы можем догадаться, что для этого, вероятно, требуется графический интерфейс. Так что без головы приведет другую ошибку:java.awt.HeadlessException
.Удалите переменную DISPLAY
Это помогает в большинстве случаев (например, запуск серверов приложений или других инструментов на основе Java) и позволяет избежать изменения всего этого большого количества командных строк.
Также может быть удобно добавить его в .bash_profile для выделенного пользователя app-server / tools.
источник
Я думаю, вы работаете в режиме sudo. Пожалуйста, перейдите в пользовательский режим и попробуйте еще раз
источник
В случае, если кто-то пытается запустить автоматические модульные тесты через maven-surefire-plugin на CI (jenkins, ..) и получает вышеупомянутую ошибку, обязательно обновите конфигурацию вашего плагина surefire:
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>${maven-surefire-plugin.version}</version> <configuration> <systemPropertyVariables> <java.awt.headless>true</java.awt.headless> </systemPropertyVariables> </configuration> </plugin>
источник
Это исправит:
/usr/bin/java -Djava.awt.headless=true $Your_program
источник
Для меня вход в систему как -Y вместо -X работал.
Если у вас ненадежный X11, как показано ниже, попробуйте вместо этого использовать флаг -Y (если вы доверяете хосту):
Предупреждение : не удалось настроить ненадежную пересылку X11: данные ключа xauth не созданы
источник
После нескольких дней бесполезных усилий по установке Glassfish на Raspberry Pi 2 с безголовой Fedora 22, Ниже работал у меня без сучка и задоринки
unset DISPLAY java -Djava.awt.headless=true -jar glassfissh-installer-v2ur2-b04-linux.jar
получил мою помощь отсюда
источник
Первое: запустите XQuartz
Второй: ssh -X user @ ip_address
...: начать свой процесс
если вы ssh, а затем запустите XQuartz, вы получите эту ошибку
источник
Это устранило мою проблему
но имейте в виду, что
xhost +
полностью отключает аутентификацию и позволяет каждому получить доступ ко всем приложениям на вашем экране.xhost +si:localuser:root
похоже, работает аналогично при правильной аутентификации.источник
Сначала сделайте это либо на этапе сборки Jenkins, если используете, либо установите в / etc / profile:
unset DISPLAY export DISPLAY=:0
затем установите это свойство либо в java-коде, либо с помощью maven: -Djava.awt.headless = false
источник
Я использовал Xming и получил аналогичную ошибку. Для решения проблемы были предприняты следующие шаги:
DISPLAY=XXX.XXX.XXX.XX:0.0; export DISPLAY
Замените
XXX.XXX.XXX.XX
своим IP-адресом.источник
Решено. Я просто выхожу из системы и вхожу в систему с помощью xorg!
источник
Если вы пытаетесь экспортировать отображение с помощью su, но это все равно не работает. Это то, что у меня сработало. Попробуйте перенаправление X11 для пользователей sudo.
Подключите удаленный хост с помощью опции -X с ssh.
# ssh -X root@remote-host
Теперь перечислите набор кукол для текущего пользователя.
# xauth list $DISPLAY node01.thegeekdiary.com/unix:10 MIT-MAGIC-COOKIE-1 dacbc5765ec54a1d7115a172147866aa # echo $DSIPLAY localhost:10.0
Переключитесь на другую учетную запись пользователя с помощью sudo. Добавьте файл cookie из вывода команды выше пользователю sudo.
# sudo su - [user] # xauth add node01.thegeekdiary.com/unix:10 MIT-MAGIC-COOKIE-1 dacbc5765ec54a1d7115a172147866aa
Снова экспортируйте отображение из шага 2 для пользователя sudo. Попробуйте выполнить команду xclock, чтобы убедиться, что клиентские приложения x работают должным образом.
# export DISPLAY=localhost:10.0
источник: https://www.thegeekdiary.com/how-to-set-x11-forwarding-export-remote-display-for-users-who-switch-accounts-using-sudo/
источник
Если вы видите эту ошибку в Hudson, попробуйте удалить каталог .java из вашего домашнего каталога, это может сработать для вас.
источник
Майкл-О дал полезный подход к решению проблемы. Другой способ решить эту проблему - запустить сервер с помощью Putty Console.
источник
В моем случае на моей машине не осталось места, и я столкнулся с той же проблемой. Иногда это может быть проблема с космосом. Проверьте свободное место в среде Linux / Unix и убедитесь, что на вашем компьютере достаточно места.
источник
проверьте, установлена ли переменная $ DISPLAY или нет, с помощью следующей команды:
echo $ DISPLAY
если отображаемая переменная не установлена, запустите приведенную ниже команду, чтобы установить, (даже если она установлена, для вашего сеанса вы можете иметь значение ниже)
экспорт DISPLAY =: 0.0
в замазке также есть расположение отображения x как: 0,0
источник
У меня была такая же проблема на сервере Linux, над которым я работал. Подключение java к дисплею X11 работало на головном узле, но не на любом другом. После обращения к администратору выяснилось, что текущая версия нашей системы планирования заданий (SLURM) не поддерживает пересылку X11. Им пришлось обновить SLURM (новые версии SLURM поддерживают его), чтобы он заработал.
источник
единственный способ заставить его работать - запустить скрипт с шаблоном. например sudo ./glassfish-3.1.2.2-unix.sh -s template
Это устанавливает Glassfish в тихом режиме. http://docs.oracle.com/cd/E18930_01/html/821-2427/ghmva.html
источник
Я сталкиваюсь с той же ошибкой, что и вы, когда запускаю команду jconsole на удаленном компьютере. Я хочу изменить параметр в jconsole, который работает на удаленном хосте Linux, я могу войти на хост, используя secureCRT, терминал выдает эту информацию об ошибке. К счастью, при использовании Putty все в порядке. Странно ....
источник
Если вы запускаете приложение на удаленном сервере при входе в систему по ssh, то другим способом будет запустить ssh с
-x
параметром или добавитьForwardX11 no
в ваш/etc/ssh/ssh_config
. В этом случае ssh не будет создавать переменную окружения DISPLAY.источник
Для меня проблема заключалась в том, что xorg-x11-xauth не был установлен. Я его установил, и все заработало.
Пакеты, которые у меня есть сейчас:
источник
Если вы запускаете свой код из Jenkins, включение опции «Запускать Xvfb перед сборкой и выключать после» может помочь. Мне это помогло.
источник
перейдите на другого пользователя и попробуйте, кроме root. меня устраивает.
источник
Я просто не вышел из root перед запуском ./studio.sh Все готово.
источник
Для Ubuntu 17.10 Установите виртуальный буфер кадра X (xvfb)
И добавил эти строчки в файл / etc / profile ...
# Start the X virtual frame buffer (Xvfb) if [ -f /usr/X11R6/bin/Xvfb ]; then /usr/X11R6/bin/Xvfb :1 -screen 0 1366x768x32 fi # Set the DISPLAY variable for the X virtual frame buffer (Xvfb) export DISPLAY=localhost:1.0
источник
В моем случае эта ошибка не была связана с портом DISPLAY. Я пытался загрузить XML в Windchill (программное обеспечение PLM) и получил только указанную выше ошибку на терминале. В лог -файле я нашел отчет о том, что мой XML-файл поврежден . Может быть, у кого-то есть похожая проблема, и он может использовать этот ответ.
источник
Моя проблема была в брандмауэре. Временно отключил.
[РЕДАКТИРОВАТЬ] И имя хоста сервера указывало на другой IP. Установите просто localserver.
strace xclock
помог отладить эту проблему.источник
Я решил эту проблему, выполнив вход с помощью Xorg. По умолчанию я использовал Wayland. Похоже, что Wayland устраняет большинство недостатков дизайна Xorg, у него есть свои проблемы.
источник