Java ne peut pas se connecter au serveur de fenêtres X11 en utilisant 'localhost: 10.0' comme valeur de la variable D'affichage

J'ai un script utilisant java pour se connecter pour afficher X11 dans le port 10.0 à localhost

Mais je reçois toujours cette erreur

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)

J'ai tout essayé pour résoudre ce problème, comme :

export DISPLAY=:10.0
export DISPLAY=localhost:10.0

J'ai aussi essayé le port 0.0 mais j'obtiens toujours la même erreur

Après avoir essayé xhost

xhost +local:all
xhost:  unable to open display ""
xhost:  unable to open display ":10.0"

Comment puis-je résoudre ce problème je pensais que le serveur X ne fonctionnait pas alors j'ai essayé {[3] } Son dit son fonctionnement sur ce port

Mon système est Ubuntu server edition 10.04

63
demandé sur 030 2012-04-16 00:26:54

23 réponses

Cette commande m'a aidé à résoudre le problème:

export DISPLAY=:0
29
répondu Maryam Saeidi 2013-02-25 13:54:11

, Vous devez spécifier le -Djava.awt.headless=true paramètre au moment du démarrage.

47
répondu Michael-O 2014-03-25 10:10:48

Supprimer la variable D'affichage

unset DISPLAY

Cela aide dans la plupart des cas (par exemple, le démarrage de serveurs d'applications ou d'autres outils basés sur java) et évite de modifier autant de lignes de commande.

Il peut également être confortable pour l'ajouter à la .bash_profile pour une application dédiée-serveur/outils utilisateur.

30
répondu bebbo 2012-12-10 21:20:53

Je pense que vous travaillez en mode sudo.Veuillez passer en mode utilisateur et réessayer

10
répondu Harsh V Pillai 2017-07-05 09:07:58

Dans le cas où quelqu'un essaie d'exécuter les tests unitaires automatisés via Maven-surefire-plugin sur CI (jenkins,..), et obtenir l'erreur mentionnée ci-dessus, assurez-vous de mettre à jour votre configuration de plugin 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>
7
répondu Puneetsri 2014-05-22 13:47:05

Cela va le réparer:

/usr/bin/java -Djava.awt.headless=true $Your_program
6
répondu CPU 100 2016-11-08 10:58:12

Pour me connecter comme - Y au lieu de-X a fonctionné.

Si vous avez un X11 non approuvé comme indiqué ci-dessous, essayez l'indicateur-Y à la place (si vous faites confiance à l'hôte):

Avertissement : la configuration du transfert X11 non approuvée a échoué: les données de la clé xauth ne sont pas générées

3
répondu loknath 2017-07-03 10:46:31

Après plusieurs jours d'efforts futiles d'installation de glassfish sur raspberry pi 2 avec Headless fedora 22, ci-dessous a fonctionné pour moi sans accroc

 unset DISPLAY
java -Djava.awt.headless=true -jar glassfissh-installer-v2ur2-b04-linux.jar

Obtenu mon aide de ici

2
répondu N_E 2016-02-28 07:03:36

Premier: démarrer XQuartz

Deuxième: SSH-x user@ip_address

...: démarrer votre processus

Si vous ssh puis démarrez XQuartz, vous obtiendrez cette erreur

2
répondu Aleks Tkachenko 2016-10-28 21:05:28

Dans mon cas, il n'y avait plus d'espace dans ma machine et j'ai fait face au même problème. Parfois, cela pourrait être le problème de l'espace. Vérifiez l'espace dans votre environnement Linux / Unix et assurez-vous que votre machine a suffisamment d'espace.

1
répondu user3016200 2017-01-02 05:36:40

J'utilisais Xming et j'ai eu une erreur similaire. Les mesures suivantes ont été prises pour résoudre le problème:

  1. dans Xming launch cochez la case pas de contrôle d'accès.
  2. dans putty a exécuté la commande suivante: DISPLAY=XXX.XXX.XXX.XX:0.0; export DISPLAY

Remplacez XXX.XXX.XXX.XX par votre adresse IP.

1
répondu Shashank 2017-04-13 14:50:42

La seule façon de le faire fonctionner était d'exécuter le script avec un modèle. par exemple sudo ./glassfish-3.1.2.2-unix.sh -modèle s

Cela installe Glassfish en mode silencieux. http://docs.oracle.com/cd/E18930_01/html/821-2427/ghmva.html

0
répondu janex 2013-04-24 17:02:40

Je rencontre la même erreur avec vous lorsque j'exécute la commande jconsole à distance. Je veux modifier un paramètre à jconsole qui s'exécute sur un hôte Linux distant, je peux me connecter à l'hôte utiliser le secureCRT, le terminal lance cette information d'erreur. Heureusement, quand utiliser le mastic, c'est ok. Étrange....

0
répondu David 2013-05-02 05:48:27

Si vous voyez cette erreur dans Hudson, essayez de supprimer le .répertoire java à partir de votre répertoire personnel, il peut fonctionner pour vous.

0
répondu user2945593 2013-11-01 16:15:15

Si vous démarrez l'application sur un serveur distant alors que vous êtes connecté par ssh, une autre façon serait de démarrer ssh avec le paramètre -x ou d'ajouter ForwardX11 no dans votre /etc/ssh/ssh_config. Dans ce cas, ssh ne créera pas D'affichage de variable d'environnement.

0
répondu user3132194 2015-10-12 11:16:15

Michael-O a donné une approche utile pour résoudre le problème. Une autre façon de résoudre ce problème est de démarrer le serveur avec Putty Console.

0
répondu Koti Reddy 2015-12-14 08:17:12

Si vous déclenchez votre code à partir de Jenkins, activer l'option "Démarrer Xvfb avant la construction, et l'arrêter après" pourrait aider. Il m'a aidé.

0
répondu Akshay Maldhure 2017-09-13 05:46:19

Changez pour un autre utilisateur et essayez sauf root. il fonctionne pour moi.

0
répondu Vinod Ranga 2017-09-20 18:07:09

Je ne me suis pas déconnecté de root avant de courir ./studio.sh tout est prêt.

0
répondu Praveen Kumar Verma 2018-01-06 22:39:29

Pour Ubuntu 17.10 Installer x tampon de trame virtuelle (xvfb)

apt install xvfb

Et ajouté ces lignes au fichier/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
0
répondu cwilliamsz 2018-02-16 19:15:33

Dans mon cas, cette erreur n'était pas liée au port D'affichage. J'essayais de charger un XML dans Windchill (un logiciel PLM) et n'ai reçu que l'erreur ci-dessus sur le terminal. Dans un fichier journal, j'ai trouvé le rapport que mon fichier XML était corrompu . Peut-être que quelqu'un a un problème similaire et peut utiliser cette réponse.

0
répondu LMN 2018-09-04 07:56:02

Faites D'abord ceci soit dans la phase de construction de Jenkins si vous utilisez ou définissez dans/etc / profile:

unset DISPLAY
export DISPLAY=:0

Ensuite, définissez cette propriété soit dans le code java ou en utilisant maven: - Djava.awt.sans tête = false

0
répondu Pankaj Kumar Katiyar 2018-09-05 07:42:50

Pour moi, le problème était que xorg-x11-xauth n'a pas été installé. Je l'ai installé et puis il a travaillé.

Les paquets que j'ai maintenant sont:

  • libX11-commune-1.6.3-2.el6.noarch
  • libX11-1.6.3-2.el6.i686
  • libX11-1.6.3-2.el6.x86_64
  • xorg-x11-drv-ATI-firware-7.6.1-2.el6.noarch
  • xorg-x11-xauth-1.0.9-1.el6.x86_64
-1
répondu Kwokman Chung 2016-11-01 15:01:14