it-swarm.com.de

"Keine X11 DISPLAY-Variable" - was bedeutet das?

Ich versuche eine Java-Anwendung auf meiner Linux-Maschine (Slackware) zu installieren. 

Ich habe die folgende Fehlermeldung erhalten und verstehe sie nicht. 

Könnten Sie mir raten, wie ich das Problem angehen soll? Vielen Dank.

Folgendes bekomme ich: (Ich sehe, dass einige X11 DISPLAY Variable gesetzt werden muss, aber welchen Wert sollte ich 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)
89
user42155

Wenn Sie sich auf der Hauptanzeige befinden, dann

export DISPLAY=:0.0

oder wenn Sie csh oder tcsh verwenden

setenv DISPLAY :0.0

bevor Sie Ihre App ausführen.

Eigentlich bin ich überrascht, dass es nicht automatisch eingestellt wird. Versuchen Sie, diese Anwendung von einem nicht-grafischen Terminal aus zu starten? Wenn nicht, haben Sie die Standardeinstellungen .profile, .login, .bashrc oder .cshrc geändert?

Wenn Sie DISPLAY auf: 0.0 setzen, wird vorausgesetzt, dass Sie, wie gesagt, am Hauptdisplay sitzen oder zumindest das Hauptdisplay bei Ihrer Benutzer-ID angemeldet ist. Wenn es nicht angemeldet ist oder eine andere Benutzer-ID verwendet, schlägt dies fehl. 

Wenn Sie von einem anderen Computer kommen und sich auf dem Hauptbildschirm des Computers befinden, auf dem X ausgeführt wird, können Sie "ssh -X hostname" verwenden, um eine Verbindung zu diesem Host herzustellen, und ssh leitet die X-Anzeige zurück . ssh stellt außerdem sicher, dass die Umgebungsvariable DISPLAY korrekt festgelegt ist (vorausgesetzt, sie wird in den verschiedenen Punktdateien, die ich oben erwähnt habe, nicht durcheinander gebracht). In einer "ssh -X" -Sitzung hat die DISPLAY-Umgebungsvariable einen Wert wie "localhost: 11.0", der auf den Socket verweist, den ssh auf Ihre lokale Box tunnelt.

102
Paul Tomblin

Führen Sie dies in einer X11-Umgebung aus? Sie können ein Terminalfenster verwenden, aber es muss sich innerhalb von X befinden (entweder nach einer grafischen Anmeldung oder durch Ausführen von startx). 

Wenn Sie sich bereits in einer grafischen Umgebung befinden, exportieren Sie DISPLAY =: 0 für bash wie Shells (bash, sh usw.) oder setenv DISPLAY: 0 für C-Shell-basierte Shells (csh, tcsh usw.).

Wenn Sie über SSH von einem anderen Computer aus eine Verbindung hergestellt haben, können Sie die grafische Benutzeroberfläche mit der Option -X auf dem Computer anzeigen, auf dem Sie sitzen (sofern dort ein X-Server ausgeführt wird (z. B. xming für Windows und Ihr Standard-Linux X) Server).

10
Mikeage

sie müssen die X11-Weiterleitung in Ihrem PuTTY aktivieren

Öffnen Sie dazu PuTTY, gehen Sie zu Connection => SSH => Tunnels und markieren Sie die Option Enable X11 forwarding

Auch Sudo zum Server und Exportieren der folgenden Variable ist hier die IP Ihres lokalen Computers

export DISPLAY=10.75.75.75:0.0

 enter image description here

Eine weitere Sache könnte das Problem in einem ähnlichen Fall sein wie beschrieben - X wird nicht weitergeleitet und $ DISPLAY wird nicht gesetzt, wenn das 'xauth'-Programm nicht auf der Remote-Seite installiert ist. Sie können sehen, dass es danach sucht, wenn Sie "ssh -Xv ip_address" ausführen. Wenn dies nicht gefunden wird, schlägt dies fehl. Dies wird nicht angezeigt, es sei denn, Sie aktivieren den ausführlichen Modus (ein Fail-IMO). Sie können 'xauth' normalerweise in einem Paket mit demselben Namen finden.

Sehr einfach, Hatte das gleiche Problem, was ich tat, war das Herunterladen und Installieren einer App, die beim Anzeigen helfen würde, und dann den Fehler behoben.

Laden Sie diese App herunter xming:

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

Installieren Sie die Einstellungen für diesen Link:

http://www.geo.mtu.edu/geoschem/docs/PuTTY_install.html oder folge diesen Schritten:

Installieren/Konfigurieren von PuTTY und Xming

Nachdem PuTTY und Xming auf den PC heruntergeladen wurden, installieren Sie es gemäß den entsprechenden Anweisungen.

Konfigurieren von Xming

Führen Sie nach der Installation von Xming die Anwendung "XLaunch" aus und überprüfen Sie, ob die Einstellungen wie folgt sind:

  • wählen Sie Standardeinträge in den Anzeigeeinstellungen aus und klicken Sie auf Weiter
  • klicken Sie im Session Type-Fenster auf next.
  • klicken Sie auf Weiter in dem Fenster Zusatzparameter (Ankreuzfeld Zwischenablage beachten).
  • konfiguration speichern und abschließen.

Konfigurieren von PuTTY

Doppelklicken Sie nach der Installation von PuTTY auf das PuTTY-Symbol auf dem Desktop und konfigurieren Sie es wie folgt:

Dies zeigt, wie Sie ein Anmeldeprofil erstellen und dann speichern.

  • Aktivieren Sie bei ssh -> X11 das Kontrollkästchen, um die X11-Weiterleitung zu aktivieren.
  • geben Sie im Textfeld für die X-Anzeigeposition Folgendes ein: localhost: 0.0

profil speichern, dann Remote-Verbindung zum Server herstellen, um zu testen.

Prost!!!

1

Für diejenigen, die versuchen, eine X Window-Anwendung unter Windows von Linux zum Laufen zu bringen:

Was für mich funktionierte, war, den xming-Server auf meinem Windows-Computer einzurichten, die X11-Weiterleitungsoption in PuTTY einzustellen, wenn ich eine Verbindung zum Linux-Host herstelle, und meine Windows-IP-Adresse mit dem Display-Port und dann die Anzeigevariable mit meiner Windows-IP-Adresse einzugeben: 0.0

Vergessen Sie nicht, die IP-Adresse des Linux-Hosts zur Datei X0.hosts hinzuzufügen, um sicherzustellen, dass der XMING-Server den Datenverkehr von diesem Host akzeptiert. Ich habe eine Weile gebraucht, um das herauszufinden.

Dafür gibt es viele Möglichkeiten. Ich habe etwas getan, das mir unten recht ist und immer gut funktioniert.

  1. Stellen Sie sicher, dass Sie auf Ihrem Remote-Server xorg-x11-xauth, xorg-x11-font-utils und xorg-x11-fonts installieren.
  2. Führen Sie den Xming-Server auf Ihrem lokalen Desktop aus
  3. Aktivieren Sie auf PuTTY vor ssh zum Server die X11-Weiterleitung und setzen Sie den Anzeigeort auf localhost: 0.0
  4. Auf dem Server wird eine .Xauthority-Datei generiert und es wird darauf hingewiesen, dass die Variable DISPLAY bereits festgelegt ist.

    $ xauth Liste

    $ xauth add

Geben Sie zum Testen xclock oder xeyes ein

Hinweis: Um den Benutzer zu wechseln, kopieren Sie die .Xauthority-Datei in das Ausgangsverzeichnis des jeweiligen Benutzers und exportieren Sie auch die DISPLAY-Variable dieses Benutzers.

0
Naseer-shaik

Ich hatte das gleiche Problem in Ubuntu 14.04.01, als ich versuchte, JDK 8 und Netbeans zu installieren, wenn ich das Skript in einem Byobu-Terminal starte (vielleicht passiert bei Screens das Gleiche).

Beenden Sie einfach Byobu und führen Sie (in einem grafischen Terminal) das Skript aus.

0
victe

Erstprüfung.

1) Wenn Sie das DISPLAY auf einen anderen Computer exportieren, stellen Sie sicher, dass Sie den Befehl xhost + auf diesem Computer eingegeben haben. Mit diesem Befehl können andere Computer ihr DISPLAY auf diesem Computer exportieren. Es kann Sicherheitsbeschränkungen geben, wissen Sie einfach darüber. Sie müssen überprüfen, ob ssh -X MachineIP nicht xhost + erforderlich ist. 

2) Manchmal wird JCONSOLE nicht alle Prozesse angezeigt, da diese JVM-Prozesse möglicherweise mit anderen Benutzern ausgeführt werden und Sie das DISPLAY mit einem anderen Benutzer exportieren. also besser folgen CD_DIR>Sudo ./jconsole

3) In WAS (WEBSPHERE); jconsole kann seinen Java-Server-Prozess nicht verbinden, gehen Sie einfach bis zum Link und versuchen Sie, die Verbindung herzustellen. Das hat bei mir funktioniert. Möglicherweise initialisiert diese Seite einige Variablen, damit jconsole eine Verbindung mit diesem Server herstellen kann.

WAS-Konsole> Anwendungsserver> Server1> Prozessdefinition> Java Virtual Machine 


Ich habe das gleiche Problem mit AIX (wo Befehlszeilenschnittstelle nur verfügbar ist, Es gibt keine ANZEIGE-Benutzeroberfläche) vorgefunden. Ich habe es mit der Installation gelöst

NX-Client für Windows

Schritt 1: Über diesen Windows-Computer habe ich eine Verbindung zur Unix-Box hergestellt, wo die GUI-Konsole verfügbar ist.
Schritt 2: SSH zur AIX-Box von dieser UNIX-Box.
Schritt 3: Stellen Sie DISPLAY wie "Export DISPLAY = UNIXMACHINE: NXClientPORTConnectedMentionedOnTitle" ein.
Schritt 4: Jetzt, wenn wir Programme starten, für die DISPLAY erforderlich ist; es wird auf dieser UNIX-Box gestartet.

VNC 

Wenn Sie VNC unter UNIX installiert haben, ist die Anzeige verfügbar. dann ist Windows und NX Client nicht erforderlich. Schritt 1: Verwenden Sie VNC, um eine Verbindung mit der Unix-Box herzustellen, wo die GUI-Konsole verfügbar ist.
Schritt 2: SSH zur AIX-Box von dieser UNIX-Box.
Schritt 3: Stellen Sie DISPLAY auf "export DISPLAY = UNIXMACHINE: VNCPORT".
Schritt 4: Jetzt, wenn wir Programme starten, für die DISPLAY erforderlich ist; es wird auf dieser UNIX-Box gestartet.

SONST 

Schritt 1: SSH an die AIX-Box von dieser UNIX-Box.
Schritt 2: Stellen Sie DISPLAY wie "export DISPLAY = UNIXMACHINE: VNCPORT" ein.
Schritt 3: Starten Sie jetzt Programme, für die DISPLAY erforderlich ist. es wird auf dieser UNIX-Box gestartet.

0