122 votes

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

J'ai un script utilisant java pour se connecter à l'affichage X11 dans le port 10.0 sur localhost.

mais j'obtiens 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, par exemple :

export DISPLAY=:10.0
export DISPLAY=localhost:10.0

J'ai également 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 ? J'ai pensé que le serveur X ne fonctionnait pas et j'ai donc essayé de le faire. startx Il indique qu'il fonctionne à ce port

Mon système est Ubuntu server edition 10.04

0voto

Je ne me suis pas déconnecté de Root avant de lancer ./studio.sh Tout est prêt.

0voto

LMN Points 58

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

0voto

Seff Points 23

Le problème que j'ai rencontré concernait le pare-feu. Je l'ai désactivé temporairement.

[EDIT] Et le nom d'hôte du serveur pointait vers une autre IP. Le mettre à simplement localserver. strace xclock a permis de déboguer ce problème.

0voto

Easwer A.P Points 19

J'ai résolu ce problème en me connectant à l'aide de Xorg. Par défaut, j'ai utilisé Wayland. Il semble que Wayland élimine la plupart des défauts de conception de Xorg, mais il a ses propres problèmes. enter image description here

0voto

veer Points 25

Pour moi, aucune des solutions ci-dessus n'a fonctionné, mais après une longue recherche, celle-ci a fonctionné pour moi.

export DISPLAY=localhost:20.0

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X