"No X11 DISPLAY variable" - was bedeutet das?
Ich versuche zu installieren eine Java-Anwendung auf meinem Linux-Rechner (Slackware).
Erhielt ich die folgende Fehlermeldung, und ich verstehe es nicht.
Könnten Sie mir raten, wie man mit dem problem? Danke.
Hier ist, was ich bekomme: (ich sehe, dass einige X11-DISPLAY variable gesetzt werden muss, aber welchen Wert sollte ich es geben, und wie?)
~$ 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)
ich habe das gleiche problem, es funktioniert perfecly auf Konsole, aber wenn ich mit eclipse wirft es die gleiche Ausnahme, ich selbst, die code-Zeilen : Prozess proc_exporting =Runtime.getRuntime().exec("sudo export DISPLAY =:0.0"); funktioniert immer noch nicht
Keine der Antworten geben die Informationen, die benötigt werden um dieses problem zu lösen, wenn eine Verbindung zu einer Remote-Konsole via puTTY. Jede Antwort, die Adressen SSH nicht wirklich erklären, wie es funktioniert. Wer kennt eine Frage, die die Adressen?
Keine der Antworten geben die Informationen, die benötigt werden um dieses problem zu lösen, wenn eine Verbindung zu einer Remote-Konsole via puTTY. Jede Antwort, die Adressen SSH nicht wirklich erklären, wie es funktioniert. Wer kennt eine Frage, die die Adressen?
InformationsquelleAutor user42155 | 2009-03-19
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie auf dem Hauptdisplay, dann
oder wenn Sie mit csh oder tcsh
vor dem ausführen Ihrer Anwendung.
Tatsächlich, ich bin überrascht, es ist nicht automatisch gesetzt. Sind Sie versuchen, starten Sie diese Anwendung aus einem nicht-grafischen terminal? Wenn nicht, haben Sie geändert haben, der Standard .Profil .login .bashrc oder .cshrc?
Beachten Sie, dass das DISPLAY auf :0.0 voraussetzt, dass Sie sitzen auf dem Haupt-display, als ich sagte, oder zumindest, dass das Haupt-display ist angemeldet, um Ihre Benutzer-id. Wenn es nicht angemeldet, oder es ist eine andere userid, diese wird scheitern.
Wenn Sie kommen von einer anderen Maschine, und Sie auf dem Haupt-display der Maschine, und es ist X läuft, dann kann man mit "ssh -X hostname", um die Verbindung zu diesem host, und ssh leitet die X-Anzeige zurück. ssh wird auch stellen Sie sicher, dass die DISPLAY-Umgebungsvariable richtig festgelegt ist (vorausgesetzt, es nicht Durcheinander mit den verschiedenen dot-Dateien, die ich oben erwähnt). In einer "ssh -X" - Sitzung, die DISPLAY-Umgebungsvariable einen Wert haben wird, wie "localhost:11.0", die an die Steckdose, dass das ssh-Tunneling zu Ihrem lokalen box.
Es klingt wie es will, Erreichbarkeit der Grafik angezeigt obwohl. Seien Sie vorsichtig, nicht zu laufen, wenn die Anzeige von Grafiken ist nicht verfügbar, oder es gehört zu einigen anderen userid.
beachten Sie, dass dies funktioniert, weil Sie sind/waren auf der Konsole. wenn Sie wurden auf einem anderen terminal, Sie haben ein X-server läuft auf dem terminal und legen Sie dann die Umgebung, um zu Ihrer Maschine (export DISPLAY='hostname von pauls terminal':0.0 z.B.)
Guter Punkt - werde ich übernehmen @Mikeage info über ssh-X in meiner Antwort.
In Fall, dass Sie ausführen müssen, um eine automatisierte Aufgabe, die eine Verbindung benötigt einen X-server, den man sich anschauen kann xvfb, schafft einen virtuellen X-server. Dies ist sehr nützlich für einige batch-tests oder tests.
InformationsquelleAutor Paul Tomblin
Sind Sie mit diesem aus einer X11-Umgebung? Sie können ein terminal-Fenster, aber es muss innerhalb von X (entweder nach einem grafischen login, oder durch ausführen von startx).
Wenn Sie bereits innerhalb einer grafischen Umgebung, versuchen Sie export DISPLAY=:0 für die bash-shells (bash, sh, etc) oder setenv DISPLAY :0 für die C-shell basierte shells (csh, tcsh, etc.)
Wenn Sie angeschlossen habe von einem anderen Rechner aus über SSH, verwenden Sie die-X-option zur Anzeige der grafischen Benutzeroberfläche auf dem Computer, den Sie sitzen auf (vorausgesetzt es ist ein X-server läuft (z.B. xming auch für windows, und Ihre standard-Linux-X-server).
Ach, Slackware. Ist es immer noch als Barebone, wie es war, als ich das Letzte mal verwendet es vor 10 Jahren?
Es startet zwar standardmäßig im runlevel 3. Natürlich, wenn Sie sagen, dass es für den start im runlevel 5, erhalten Sie eine ziemlich KDM-login-Menü vorausgesetzt, Sie KDE installiert.
danke! auf CentOS und SSH (putty):
export DISPLAY=:0
hey, startx, thx!!!
InformationsquelleAutor Mikeage
müssen Sie aktivieren X11-forwarding in Sie PuTTy
tun, so öffnen Sie PuTTy, gehen Sie zu - Verbindung => SSH => Tunnel und aktivieren Sie die Aktivieren der X11-Weiterleitung
Auch sudo-server und exportieren Sie die variable hier unten IP ist deine lokale Maschine mit der IP -
InformationsquelleAutor Girdhar Singh Rathore
Eine weitere Sache, die das problem sein könnte in einem Fall wie beschrieben - X nicht weitergeleitet und $DISPLAY nicht gesetzt, wenn 'xauth' Programm ist nicht installiert, auf der remote-Seite. Sie können sehen, es sucht beim ausführen von "ssh -Xv ip_address", und, wenn dieser nicht gefunden wird, schlägt fehl, die ' s nicht gesehen, es sei denn, Sie turn on verbose mode (fail IMO). Sie können in der Regel finden 'xauth' im Paket mit dem gleichen Namen.
InformationsquelleAutor Арсений Пичугин
Sehr Einfach, Hatte das gleiche problem dann, was ich Tat, war, downloaden und installieren Sie eine app, die helfen würde, in der Anzeige dann den Fehler behoben.
Laden Sie diese app xming:
http://sourceforge.net/project/downloading.php?
Installieren, dann verwenden Sie die Einstellungen auf diesen link:
http://www.geo.mtu.edu/geoschem/docs/putty_install.html oder befolgen Sie diese Schritte:
Installation/Konfiguration von PuTTy und Xming
Einmal PuTTy und Xming wurden auf den PC heruntergeladen, installieren Sie diese entsprechend der jeweiligen Anweisungen.
Konfiguration Von Xming
Einmal Xming installiert ist, führen Sie die Anwendung "XLaunch" und stellen Sie sicher, dass die Einstellungen sind, wie gezeigt:
Konfiguration Von PuTTy
Nach der Installation von PuTTy, klicken Sie doppelt auf das PuTTy Symbol auf dem desktop und konfigurieren Sie wie abgebildet:
Dieser zeigt die Erstellung einer login Profil dann speichern.
Profil speichern, dann eine Remote-Verbindung zum server zu testen.
Prost!!!
InformationsquelleAutor Peter Azuka Molokwu
Ich hatte das gleiche Problem in Ubuntu 14.04.01, wenn ich versuchte, installieren Sie das JDK 8 und Netbeans, wenn ich starten Sie das Skript innerhalb einer Byobu-terminal (vielleicht mit Screens passiert das gleiche).
Nur Ausfahrt Byobu und (in einem grafischen terminal) das Skript ausführen.
InformationsquelleAutor victe
Initial Check.
1) Beim Export der ANZEIGE an die anderen Maschinen, sicherzustellen, dass Sie den Befehl eingegeben
xhost +
auf dieser Maschine. Dieser Befehl erlaubt es, auf andere Rechner exportieren Sie Ihre ANZEIGE auf dieser Maschine. Möglicherweise gibt es Einschränkungen, nur die wissen es. Brauchen, um zu überprüfenssh -X MachineIP
wird nicht verlangenxhost +
?2) Einige Male
JCONSOLE
nicht alle verarbeiten, da die JVM-Prozess ausführen kann, mit anderen Benutzer und Sie exportieren die ANZEIGE mit einem anderen Benutzer. so besser FolgenCD_DIR>sudo ./jconsole
3) In was (WEBSPHERE); jconsole nicht in der Lage, verbinden Sie die java-server-Prozess, der Zeit, gehen Sie einfach, bis der link, dann versuchen Sie, es. Dieser arbeitete für mich. Werden kann diese Seite wird initialisiert einige Variablen zu ermöglichen, jconsole, um eine Verbindung mit diesem server.
WAR-Konsole - > Application-Server > "server1" > Prozess-definition > Java Virtual Machine
Ich habe vor dem gleichen Problem mit AIX (wo Kommandozeilen-Schnittstelle nur verfügbar, Dort ist keine ANZEIGE, UI) Maschine. Habe ich gelöst durch die Installation von
Schritt 1: Über das Windows-Maschine, die ich verbunden mit unix-box, wo GUI-Konsole verfügbar ist.
Schritt 2: SSH auf der AIX-Kiste aus, die UNIX-box.
Schritt 3: stellen Sie die ANZEIGE wie "export DISPLAY=UNIXMACHINE:NXClientPORTConnectedMentionedOntitle"
Schritt 4: Nun, wenn wir starten, alle Programme, die benötigt ANZUZEIGEN; es gestartet wird auf der UNIX-box.
Wenn Sie installiert VNC auf UNIX-Rechner, wo display zur Verfügung; dann Windows und der NX-Client ist nicht erforderlich.
Schritt 1: Verwenden Sie VNC, um eine Verbindung mit Unix-box, wo GUI-Konsole verfügbar ist.
Schritt 2: SSH auf der AIX-Kiste aus, die UNIX-box.
Schritt 3: stellen Sie die ANZEIGE wie "export DISPLAY=UNIXMACHINE:VNCPORT"
Schritt 4: Nun, wenn wir starten, alle Programme, die benötigt ANZUZEIGEN; es gestartet wird auf der UNIX-box.
SONST
Schritt 1: per SSH auf der AIX-Kiste aus, die UNIX-box.
Schritt 2: stellen Sie die ANZEIGE wie "export DISPLAY=UNIXMACHINE:VNCPORT"
Schritt 3: Nun, wenn wir starten, alle Programme, die benötigt ANZUZEIGEN; es gestartet wird auf der UNIX-box.
InformationsquelleAutor Kanagavelu Sugumar
Für diejenigen, die versuchen, ein X-Window-Anwendung, die von Windows aus Linux:
Was für mich gearbeitet war, um das setup xming-server auf meinem windows-Computer, set-X11-forwarding option in putty, wenn ich eine Verbindung zum linux-Rechner und in meine windows-ip-Adresse mit dem display port und dann die display-variable mit meine windows IP-Adresse:0.0
Vergessen Sie nicht, fügen Sie die linux-hosts die IP-Adresse der X0.hosts-Datei, um sicherzustellen, dass der xming-server akzeptiert Datenverkehr vom host. Ich brauchte eine Weile, um das herauszufinden.
InformationsquelleAutor Subramaniam Ramasubramanian
Gibt es viele Möglichkeiten, dies zu tun. Ich Tat etwas, was unter praktischen und mir immer gut funktioniert.
Auf dem server .Xauthority-Datei generiert wird, und beachten Sie, dass die DISPLAY-variable schon gesetzt.
$ xauth list
$ xauth add
Um es zu testen, geben Sie xclock oder xeyes
Hinweis: Um den Benutzer zu wechseln, kopieren Sie die .Xauthority-Datei in das home-Verzeichnis des jeweiligen Nutzers und auch den export der DISPLAY-variable für diesen Benutzer.
InformationsquelleAutor Naseer-shaik
Vergessen Sie nicht, führen Sie "host +" auf Ihrem "home" - Anzeige-Maschine, und wenn man per ssh auf die Maschine, die Sie tun "ssh -x hostname"
Dies sollte ein Kommentar werden, keine post. Nur weil Sie nicht kommentieren bedeutet nicht, sollten Sie machen eine schlechte post.
InformationsquelleAutor Tihamer