"Pas de variable D'affichage X11" - 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 comprends pas.
Pourriez-vous me conseiller comment aborder le problème? Merci.
Voici ce que je reçois: (je vois qu'une variablex11 DISPLAY doit être définie, 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)
9 réponses
Si vous êtes sur l'écran principal, puis
export DISPLAY=:0.0
Ou si vous utilisez csh ou tcsh
setenv DISPLAY :0.0
Avant d'exécuter votre application.
En fait, je suis surpris qu'il ne soit pas défini automatiquement. Essayez-vous de démarrer cette application à partir d'un terminal non graphique? Sinon, avez-vous modifié la valeur par défaut .profil, .connexion, .bashrc ou .cshrc?
Notez que le réglage de l'affichage sur :0.0 présuppose que vous êtes assis à l'affichage principal, comme je l'ai dit, ou du moins que l'affichage principal est connecté à votre id utilisateur. S'il n'est pas connecté, ou s'il s'agit d'un ID utilisateur différent, cela échouera.
Si vous venez d'une autre machine, et que vous êtes à L'affichage principal de cette machine et qu'elle exécute X, vous pouvez utiliser "SSH-x hostname" pour vous connecter à cet hôte,et ssh redirigera l'affichage X. ssh s'assurera également que la variable D'environnement DISPLAY est définie correctement (à condition qu'elle ne soit pas perturbée dans les différents fichiers dot que j'ai mentionnés ci-dessus). Dans un " ssh-X" session, la variable D'environnement DISPLAY aura une valeur comme "localhost: 11.0", qui pointera vers le socket que ssh tunnellise vers votre boîte locale.
Exécutez-vous cela depuis un environnement X11? Vous pouvez utiliser une fenêtre de terminal, mais elle doit être 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 de type bash (bash, sh, etc) ou setenv DISPLAY :0 pour les shells basés sur C shell (CSH, tcsh, etc)
Si vous vous êtes connecté depuis une autre machine via SSH, vous utilisez l'option-X pour afficher l'interface graphique sur la machine que vous êtes assis à (à condition qu'il y ait un serveur X en cours d'exécution (comme xming pour windows, et votre serveur Linux x standard).
Vous devez activer x11 forwarding dans votre mastic
Pour ce faire ouvrez PuTTy, allez à la Connexion => SSH => Tunnels et coche la Activer la redirection X11
Aussi sudo au serveur et exporter la variable ci-dessous ici IP est L'IP de votre machine locale
export DISPLAY=10.75.75.75:0.0
Une autre chose qui pourrait être le problème dans un cas similaire à décrit-X n'est pas transmise et $DISPLAY n'est pas défini lorsque le programme 'xauth' n'est pas installé du côté distant. Vous pouvez voir qu'il le recherche lorsque vous exécutez "SSH-Xv ip_address", et, s'il n'est pas trouvé, échoue, ce qui n'est pas vu sauf si vous activez le mode verbeux (un échec IMO). Vous pouvez généralement trouver 'xauth' dans un paquet portant le même nom.
Très facile, a eu ce même problème alors ce que j'ai fait était de télécharger et d'installer une application qui aiderait à afficher puis corrigé l'erreur.
Télécharger cette application xming:
Http://sourceforge.net/project/downloading.php?
Installez, puis utilisez les paramètres sur ce lien:
Http://www.geo.mtu.edu/geoschem/docs/putty_install.html ou suivez ces étapes:
Installation/Configuration de PuTTy et Xming
Une fois mastic et Xming ont été téléchargé sur le PC, installer selon leurs instructions respectives.
La Configuration De Xming
Une fois Xming installé, exécutez l'application appelée 'XLaunch' et vérifiez que les paramètres sont les suivants:
- sélectionnez les entrées par défaut dans les fenêtres 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 du presse-papiers est true)
- enregistrez la configuration et cliquez sur terminer.
Configuration Du Mastic
Après avoir installé PuTTy, double-cliquez sur L'icône PuTTy sur le bureau et configurez comme indiqué:
Cela montre la création d'un profil de connexion puis son enregistrement.
- sur ssh - > X11, cochez la case pour activer le transfert X11.
- dans la zone de texte X display location, tapez localhost: 0.0
Enregistrer le profil puis se connecter à distance au serveur pour tester.
Cheers!!!
J'ai eu le même problème dans Ubuntu 14.04.01 quand j'ai essayé d'installer JDK 8 et Netbeans si je lance le script dans un terminal Byobu (peut-être avec des écrans arrive la même chose).
Quittez simplement Byobu et (dans un terminal graphique) exécutez le script.
Vérification Initiale.
1) lorsque vous exportez l'affichage vers une autre machine, assurez-vous d'avoir entré la commande xhost +
sur cette machine. Cette commande permet à une autre machine d'exporter leur 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) certaines fois JCONSOLE
ne montrera pas tout son processus, car ces processus JVM peuvent s'exécuter avec un utilisateur différent et vous exportez l'affichage avec un autre utilisateur. afin de mieux suivre CD_DIR>sudo ./jconsole
3) dans WAS (WEBSPHERE); jconsole ne pourra pas connecter son processus de serveur java, ce temps-là va juste jusqu'au lien, puis essaie de le connecter. Cela a fonctionné pour moi. Peut-être que cette page initialise certaines variables pour permettre à jconsole de se connecter à ce serveur.
Était console > 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 uniquement disponible, il N'y a pas L'AFFICHAGE de l'INTERFACE utilisateur) de la machine. J'ai résolu en installant
Client NX Pour Windows
Étape 1: via cette machine Windows, je me suis connecté à unix box où la console GUI est disponible.
Étape 2: SSH à la boîte AIX de cette boîte UNIX.
Étape 3: Définir L'affichage comme "export DISPLAY = UNIXMACHINE:NXCLIENTPORTCONNECTEDMENTIONEDONTITLE"
Étape 4: Maintenant, si nous lançons des programmes qui nécessitent un affichage; il sera lancé sur cette boîte UNIX.
VNC
Si vous avez installé VNC sur UNIX box où l'affichage est disponible, le Client Windows et NX n'est pas requis.
Étape 1: Utilisez VNC pour vous connecter à Unix box où la console GUI est disponible.
Étape 2: SSH à la boîte AIX de cette boîte UNIX.
Étape 3: Définir L'affichage comme "export DISPLAY = UNIXMACHINE: VNCPORT"
Étape 4: Maintenant, si nous lançons des programmes qui nécessitent un affichage; il sera lancé sur cette boîte UNIX.
ELSE
Étape 1: SSH à la boîte AIX de cette boîte UNIX.
Étape 2: Définir L'affichage comme "export DISPLAY = UNIXMACHINE: VNCPORT"
Étape 3: Maintenant, si nous lançons des programmes qui nécessitent un affichage; il sera lancé sur cette boîte UNIX.
Pour ceux qui essaient de faire fonctionner une application X Window à partir de Windows à partir de Linux:
Ce qui a fonctionné pour moi était 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 mettre 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 des hôtes linux au X0.fichier hosts pour s'assurer que le serveur Xming accepte le trafic de ce hôte. M'a fallu du temps pour comprendre cela.
N'oubliez pas d'exécuter "host +" sur votre machine d'affichage "home", et lorsque vous ssh sur la machine, vous faites "SSH-x hostname"