web-dev-qa-db-fra.com

"No X11 DISPLAY variable" - qu'est-ce que cela signifie?

J'essaie d'installer une application Java sur ma machine Linux (Slackware). 

J'ai reçu l'erreur suivante et je ne la comprends pas. 

Pourriez-vous me conseiller comment aborder le problème? Je vous remercie.

Voici ce que je reçois: (Je vois que certaines X11 DISPLAY doivent être définies, mais quelle valeur dois-je lui donner et comment?)

~$ Java -jar gate-5.0-beta1-build3048-installer.jar
- ERROR -

Java.awt.HeadlessException:
No X11 DISPLAY variable was set, but this program performed an operation which requires it.
Java.awt.HeadlessException:
No X11 DISPLAY variable was set, but this program performed an operation which requires it.
at Java.awt.GraphicsEnvironment.checkHeadless(Graphic sEnvironment.Java:159)
at Java.awt.Window.<init>(Window.Java:407)
at Java.awt.Frame.<init>(Frame.Java:402)
at net.sourceforge.mlf.metouia.borders.MetouiaDotsBuf fer.<init>(MetouiaDotsBuffer.Java:105)
at net.sourceforge.mlf.metouia.borders.MetouiaDots.<i nit>(MetouiaDots.Java:66)
at net.sourceforge.mlf.metouia.borders.MetouiaToolBar Border.<init>(MetouiaToolBarBorder.Java:49)
at net.sourceforge.mlf.metouia.MetouiaLookAndFeel.ini tComponentDefaults(MetouiaLookAndFeel.Java:241)
at javax.swing.plaf.basic.BasicLookAndFeel.getDefault s(BasicLookAndFeel.Java:130)
at javax.swing.plaf.metal.MetalLookAndFeel.getDefault s(MetalLookAndFeel.Java:1591)
at javax.swing.UIManager.setLookAndFeel(UIManager.jav a:537)
at javax.swing.UIManager.setLookAndFeel(UIManager.jav a:581)
at com.izforge.izpack.installer.GUIInstaller.loadLook AndFeel(GUIInstaller.Java:373)
at com.izforge.izpack.installer.GUIInstaller.<init>(G UIInstaller.Java:116)
at Sun.reflect.NativeConstructorAccessorImpl.newInsta nce0(Native Method)
at Sun.reflect.NativeConstructorAccessorImpl.newInsta nce(NativeConstructorAccessorImpl.Java:39)
at Sun.reflect.DelegatingConstructorAccessorImpl.newI nstance(DelegatingConstructorAccessorImpl.Java:27)
at Java.lang.reflect.Constructor.newInstance(Construc tor.Java:513)
at Java.lang.Class.newInstance0(Class.Java:355)
at Java.lang.Class.newInstance(Class.Java:30
at com.izforge.izpack.installer.Installer.main(Instal ler.Java:62)
89
user42155

Si vous êtes sur l'écran principal, alors

export DISPLAY=:0.0

ou si vous utilisez csh ou tcsh

setenv DISPLAY :0.0

avant de lancer votre application.

En fait, je suis surpris que ce ne soit pas réglé automatiquement. Essayez-vous de démarrer cette application à partir d'un terminal non graphique? Sinon, avez-vous modifié les fichiers .profile, .login, .bashrc ou .cshrc par défaut?

Notez que le fait de régler DISPLAY sur: 0.0 présuppose que vous êtes assis à l'écran principal, comme je l'ai dit, ou au moins que l'écran principal est connecté à votre ID utilisateur. Si ce n'est pas connecté ou si c'est un autre utilisateur, cela échouera. 

Si vous venez d'une autre machine, et que vous êtes sur l'écran principal de cette machine et qu'elle exécute X, vous pouvez utiliser "ssh -X nom_hôte" pour vous connecter à cet hôte, et ssh fera suivre l'affichage X en arrière. . ssh s'assurera également que la variable d'environnement DISPLAY est définie correctement (à condition de ne pas la gêner dans les divers fichiers de points que j'ai mentionnés ci-dessus). Dans une session "ssh -X", la variable d'environnement DISPLAY aura une valeur telle que "localhost: 11.0", qui pointera vers le socket que ssh tunnelise vers votre boîte locale.

102
Paul Tomblin

Exécutez-vous cela depuis un environnement X11? Vous pouvez utiliser une fenêtre de terminal, mais celle-ci doit se trouver dans X (soit après une connexion graphique, soit en exécutant startx). 

Si vous êtes déjà dans un environnement graphique, essayez d'exporter DISPLAY =: 0 pour les shells similaires (bash, sh, etc.) ou setenv DISPLAY: 0 pour les shells basés sur le shell C (csh, tcsh, etc.)

Si vous vous êtes connecté à partir d’une autre machine via SSH, vous utilisez l’option -X pour afficher l’interface graphique de la machine sur laquelle vous êtes assis (à condition qu’un serveur X y soit installé (tel que xming pour Windows et votre serveur Linux standard). serveur).

10
Mikeage

vous devez activer le transfert X11 dans votre PuTTY

pour ce faire, ouvrez PuTTY, allez à Connexion => SSH => Tunnels et cochez la case Activer le transfert X11 

Aussi Sudo vers le serveur et exportez la variable ci-dessous ici. IP est l'adresse IP de votre machine locale.

export DISPLAY=10.75.75.75:0.0

 enter image description here

6

Une dernière chose qui pourrait poser problème dans un cas similaire à celui décrit ci-dessus - X n’est pas transféré et $ DISPLAY n’est pas défini lorsque le programme 'xauth' n’est pas installé du côté distant. Vous pouvez le voir le rechercher lorsque vous exécutez "ssh -Xv ip_address" et, s'il n'est pas trouvé, échoue, ce qui ne sera pas visible à moins d'activer le mode commenté (un échec de l'OMI). Vous pouvez généralement trouver 'xauth' dans un paquet portant le même nom.

Très facile, Si j'avais le même problème, j'ai alors téléchargé et installé une application qui aiderait à afficher puis corrigé l'erreur.

Téléchargez cette application xming:

http://sourceforge.net/project/downloading.php ?

Installer, puis utiliser les paramètres sur ce lien:

http://www.geo.mtu.edu/geoschem/docs/PuTTY_install.html ou procédez comme suit:

Installation/Configuration de PuTTY et Xming

Une fois que PuTTY et Xming ont été téléchargés sur le PC, installez-les selon leurs instructions respectives.

Configuration de Xming

Une fois Xming installé, lancez l'application appelée 'XLaunch' et vérifiez que les paramètres sont les suivants:

  • sélectionnez Entrées par défaut dans la fenêtre Paramètres d’affichage, cliquez sur Suivant.
  • cliquez sur Suivant dans la fenêtre Type de session.
  • cliquez sur Suivant dans la fenêtre Paramètres supplémentaires (la case à cocher Avis du presse-papier est vraie)
  • sauvegardez la configuration et cliquez pour finir.

Configuration de PuTTY

Après avoir installé PuTTY, double-cliquez sur l'icône PuTTY située sur le bureau et configurez comme suit:

Cela montre la création d'un profil de connexion, puis enregistrez-le.

  • Sur ssh -> X11, cochez la case pour activer le transfert X11.
  • dans la zone de texte Emplacement d'affichage X, tapez localhost: 0.0

enregistrer le profil puis connectez-vous à distance au serveur pour tester.

À votre santé!!!

1
Peter Azuka Molokwu

Pour ceux qui essaient de faire fonctionner une application X Window sous Windows à partir de Linux:

Ce qui a fonctionné pour moi a été de configurer le serveur xming sur ma machine Windows, de définir l’option de transfert X11 dans PuTTY lorsque je me connecte à l’hôte Linux et de saisir mon adresse IP Windows avec le port d’affichage, puis la variable d’affichage avec mon adresse IP Windows: 0.0

N'oubliez pas d'ajouter l'adresse IP de l'hôte Linux au fichier X0.hosts pour vous assurer que le serveur xming accepte le trafic de cet hôte. Il m'a fallu un certain temps pour comprendre cela.

Il y a plusieurs façons de le faire. J'ai fait ci-dessous quelque chose qui me convient et qui fonctionne toujours bien.

  1. Sur votre serveur distant, veillez à installer xorg-x11-xauth, xorg-x11-font-utils, xorg-x11-fonts.
  2. Exécutez le serveur Xming sur votre bureau local
  3. Sur PuTTY, avant le SSH sur le serveur, activez le transfert X11 et définissez l'emplacement d'affichage sur localhost: 0.0
  4. Un fichier .Xauthority est généré sur le serveur et notez que la variable DISPLAY est déjà définie.

    liste $ xauth

    $ xauth add

Pour le tester, tapez xclock ou xeyes

Note: Pour changer d'utilisateur, copiez le fichier .Xauthority dans le répertoire de base de l'utilisateur correspondant et exportez également la variable DISPLAY de cet utilisateur.

0
Naseer-shaik

J'ai eu le même problème dans Ubuntu 14.04.01 lorsque j'ai essayé d'installer JDK 8 et Netbeans si je lance le script à l'intérieur d'un terminal Byobu (peut-être qu'avec Screens, c'est pareil).

Quittez simplement Byobu et (dans un terminal graphique) exécutez le script.

0
victe

Vérification initiale.

1) Lorsque vous exportez l’AFFICHAGE vers une autre machine, assurez-vous que vous avez entré la commande xhost + sur cette machine. Cette commande permet à une autre machine d’exporter son AFFICHAGE sur cette machine. Il peut y avoir des contraintes de sécurité, il suffit de le savoir. Besoin de vérifier ssh -X MachineIP ne nécessitera pas xhost +

2) Parfois, JCONSOLE ne montrera pas tout son processus, car ce processus JVM peut s’exécuter avec un utilisateur différent et vous exportez l’ÉCRAN avec un autre utilisateur. alors mieux suivre CD_DIR>Sudo ./jconsole

3) en WAS (WEBSPHERE); jconsole ne pourra pas connecter son processus de serveur Java, cette fois-ci, allez jusqu'au lien, puis essayez de le connecter. Cela a fonctionné pour moi. Cette page est peut-être en train d'initialiser certaines variables pour permettre à jconsole de se connecter à ce serveur.

Console WAS> Serveurs d'applications> server1> Définition de processus> Machine virtuelle Java 


J'ai rencontré le même problème avec AIX (où l'interface de ligne de commande est uniquement disponible, il n'y a pas d'ordinateur DISPLAY). J'ai résolu en installant

NX Client pour Windows

Étape 1: À travers cette machine Windows, je me suis connecté avec la boîte de dialogue Unix où la console graphique est disponible.
Étape 2: Passez de SSH à la zone AIX à partir de cette zone UNIX.
Étape 3: définissez DISPLAY comme suit: "export DISPLAY = UNIXMACHINE: NXClientPORTConnectedMentionedOnTitle"
Étape 4: Maintenant, si nous lançons des programmes nécessitant l’affichage; il sera lancé sur cette boîte UNIX.

VNC 

Si vous avez installé VNC sous UNIX, l’affichage est disponible; alors Windows et le client NX n'est pas requis. Étape 1: Utilisez VNC pour vous connecter avec la boîte de dialogue Unix où la console graphique est disponible.
Étape 2: Passez de SSH à la zone AIX à partir de cette zone UNIX.
Étape 3: configurez DISPLAY comme suit: "export DISPLAY = UNIXMACHINE: VNCPORT"
Étape 4: Maintenant, si nous lançons des programmes nécessitant l’affichage; il sera lancé sur cette boîte UNIX.

AUTRE 

Étape 1: SSH vers la zone AIX à partir de cette zone UNIX.
Étape 2: configurez DISPLAY comme "export DISPLAY = UNIXMACHINE: VNCPORT"
Étape 3: Maintenant, si nous lançons des programmes nécessitant l’affichage; il sera lancé sur cette boîte UNIX.

0
Kanagavelu Sugumar