J'ai un script utilisant Java pour me connecter afin d'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 n'est pas en cours d'exécution alors j'ai essayé startx
sa dit son en cours d'exécution sur ce port
mon système est Ubuntu Server Edition 10.04
Cette commande m'a aidé à résoudre le problème:
export DISPLAY=:0
Vous devez spécifier le paramètre -Djava.awt.headless=true
au moment du démarrage.
Supprimer la variable DISPLAY
unset DISPLAY
Cela aide dans la plupart des cas (par exemple, le démarrage de serveurs d'applications ou d'autres outils Java) et évite de modifier autant de lignes de commande.
Il peut également être pratique de l'ajouter au fichier .bash_profile pour un utilisateur dédié serveur d'applications/outils.
Je pense que vous travaillez en mode Sudo. Veuillez passer en mode utilisateur et réessayer.
Au cas où quelqu'un essaierait d'exécuter les tests unitaires automatisés via le plugin maven-surefire sur CI (jenkins, ..) et obtenant l'erreur susmentionnée, veillez à mettre à jour la configuration de votre 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>
Cela résoudra le problème:
/usr/bin/Java -Djava.awt.headless=true $Your_program
D'abord: lancez XQuartz
Deuxièmement: ssh -X utilisateur @ ip_address
...: démarrez votre processus
si vous SSH et puis démarrez XQuartz, vous obtiendrez cette erreur
Pour moi, la connexion en tant que -Y au lieu de -X a fonctionné.
Si vous avez un X11 non fiable comme indiqué ci-dessous, essayez plutôt l'option -Y (si vous faites confiance à l'hôte):
Avertissement : Echec de la configuration du transfert X11 non sécurisé: données de clé xauth non générées
Après plusieurs jours de vains efforts pour installer Glassfish sur Raspberry Pi 2 avec Fedora 22 sans tête, Below fonctionnait pour moi sans problème.
unset DISPLAY
Java -Djava.awt.headless=true -jar glassfissh-installer-v2ur2-b04-linux.jar
a obtenu mon aide de ici
Dans mon cas, il n’y avait plus d’espace libre dans ma machine et j’étais confronté au même problème… quelques fois, c’était peut-être l’espace. Vérifiez l'espace disponible dans votre environnement Linux/Unix et assurez-vous que votre ordinateur dispose de suffisamment d'espace.
Michael-O a donné une approche utile pour résoudre le problème. Une autre solution consiste à démarrer le serveur avec PuTTY Console.
Résolu. Je viens de me déconnecter et de me connecter avec xorg!
J'utilisais Xming et j'ai eu une erreur similaire. Les mesures suivantes ont été prises pour résoudre le problème:
DISPLAY=XXX.XXX.XXX.XX:0.0; export DISPLAY
Remplacez XXX.XXX.XXX.XX
par votre adresse IP.
Commencez par faire ceci soit dans la phase de construction de Jenkins si vous utilisez ou défini dans/etc/profile:
unset DISPLAY
export DISPLAY=:0
puis définissez cette propriété en code Java ou en utilisant maven: - Djava.awt.headless = false
Je ne me suis pas déconnecté de la racine avant d’exécuter ./studio.sh.
le seul moyen de le faire fonctionner était d'exécuter le script avec un modèle. par exemple. Modèle Sudo ./glassfish-3.1.2.2-unix.sh -s
Cela installe Glassfish en mode silencieux. http://docs.Oracle.com/cd/E18930_01/html/821-2427/ghmva.html
Si vous voyez cette erreur dans Hudson, essayez de supprimer le répertoire .Java de votre répertoire personnel, cela fonctionnera peut-être pour vous.
passez à un autre utilisateur et essayez sauf root. ça marche pour moi.
Si vous déclenchez votre code à partir de Jenkins, l'activation de l'option "Démarrer Xvfb avant la construction et l'éteindre après" peut vous aider. Ça m'a aidé.
Pour Ubuntu 17.10 Installez le tampon de trame virtuel X (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
Je rencontre la même erreur avec vous lorsque j’exécute la commande jconsole à distance. Je veux modifier un paramètre sur jconsole qui s'exécute sur un hôte Linux distant, je peux me connecter à l'hôte, utiliser le secureCRT, le terminal renvoie ces informations d'erreur Heureusement, lorsque vous utilisez le Mastic, c'est bon. Bizarre....
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 que mon fichier XML était corrompu . Peut-être que quelqu'un a un problème similaire et peut utiliser cette réponse.
Si vous démarrez une application sur un serveur distant alors que vous êtes connecté par ssh, vous pouvez également démarrer ssh avec le paramètre -x
ou ajouter ForwardX11 no
dans votre /etc/ssh/ssh_config
. Dans ce cas, ssh ne créera pas la variable d'environnement DISPLAY.