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

3voto

N_E Points 729

Après plusieurs jours d'efforts futiles pour installer glassfish sur raspberry pi 2 avec headless fedora 22, Below a fonctionné pour moi sans problème.

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

j'ai reçu l'aide de aquí

2voto

Shashank Points 31

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

  1. Dans le lancement de Xming, cochez la case Pas de contrôle d'accès.
  2. Dans Putty, exécutez la commande suivante : DISPLAY=XXX.XXX.XXX.XX:0.0; export DISPLAY

Remplacer XXX.XXX.XXX.XX avec votre adresse IP.

2voto

Pankaj Points 51

Il faut d'abord le faire soit dans la phase de construction de Jenkins si on l'utilise, soit dans le fichier /etc/profile :

unset DISPLAY
export DISPLAY=:0

puis définir cette propriété soit dans le code Java, soit en utilisant maven : -Djava.awt.headless=false

2voto

Nilesh Points 845

Résolu. Je me déconnecte et me connecte avec xorg !

2voto

Naresh A Points 59

Vérifier si $DISPLAY est définie ou non, à l'aide de la commande suivante :

echo $DISPLAY

si la variable display n'est pas définie, exécutez la commande ci-dessous pour la définir (même si elle est définie, vous pouvez avoir la variable ci-dessous pour votre session)

export DISPLAY=:0.0

en mastic disposent également de la x l'emplacement de l'affichage comme :0.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