it-swarm.com.de

Java Es kann keine Verbindung zum X11-Fensterserver unter Verwendung von 'localhost: 10.0' als Wert der Variablen DISPLAY hergestellt werden

Ich habe ein Skript, das Java verwendet, um eine Verbindung herzustellen, um X11 im Port 10.0 bei localhost anzuzeigen

aber ich bekomme immer diesen fehler

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)

Ich habe alles versucht, um dieses Problem zu lösen:

export DISPLAY=:10.0
export DISPLAY=localhost:10.0

Ich habe auch den Port 0.0 ausprobiert, bekomme aber immer den gleichen Fehler

nach dem Versuch von xhost 

xhost +local:all
xhost:  unable to open display ""
xhost:  unable to open display ":10.0"

wie kann ich das beheben? Ich dachte, dass der X-Server nicht läuft, also versuchte ich startx es sagt, dass er an diesem Port läuft 

mein System ist Ubuntu Server Edition 10.04

69
ElTero

Dieser Befehl hat mir geholfen, das Problem zu lösen:

export DISPLAY=:0
32
Maryam Saeidi

Sie müssen den Parameter -Djava.awt.headless=true beim Start angeben.

48
Michael-O

Entfernen Sie die DISPLAY-Variable

unset DISPLAY

Dies hilft in den meisten Fällen (z. B. Starten von Anwendungsservern oder anderen Java-basierten Tools) und vermeidet das Ändern all dieser vielen Befehlszeilen.

Es kann auch bequem sein, es für einen dedizierten App-Server/Tools-Benutzer zum .bash_profile hinzuzufügen.

32
bebbo

Ich denke, Sie arbeiten im Sudo-Modus. Bitte gehen Sie in den Benutzermodus und versuchen Sie es erneut

12
Harsh V Pillai

Falls jemand versucht, die automatisierten Komponententests über das maven-surefire-plugin unter CI (jenkins, ..) auszuführen, und der oben genannte Fehler angezeigt wird, müssen Sie Ihre surefire-Plugin-Konfiguration aktualisieren:

<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>
8
Puneetsri

Dies wird es beheben:

/usr/bin/Java -Djava.awt.headless=true $Your_program
6
grepit

Zuerst: Starten Sie XQuartz

Zweitens: ssh -X user @ ip_address

...: Starten Sie Ihren Prozess

wenn Sie ssh starten und dann XQuartz starten, wird diese Fehlermeldung angezeigt

3
Aleks Tkachenko

Für mich hat das Einloggen als -Y statt -X funktioniert.

Falls Sie nicht vertrauenswürdiges X11 haben (siehe unten), versuchen Sie stattdessen das Flag -Y (wenn Sie dem Host vertrauen):

Warnung : Nicht vertrauenswürdiges X11-Weiterleitungs-Setup ist fehlgeschlagen: Es werden keine Xauth-Schlüsseldaten generiert

3
loknath

Nach mehreren Tagen vergeblicher Anstrengung, Glassfish auf Raspberry Pi 2 mit kopfloser Fedora 22 zu installieren, arbeitete Below für mich ohne Probleme

 unset DISPLAY
Java -Djava.awt.headless=true -jar glassfissh-installer-v2ur2-b04-linux.jar

bekam meine Hilfe von hier

3
N_E

In meinem Fall war kein Platz mehr in meinem Computer und ich hatte das gleiche Problem ... Einige Male war es das Platzproblem. Überprüfen Sie den Speicherplatz in Ihrer Linux/Unix-Umgebung und stellen Sie sicher, dass auf Ihrem Computer genügend Speicherplatz vorhanden ist.

1
user3016200

Michael-O gab nützliche Ansätze zur Lösung des Problems. Eine andere Möglichkeit, dieses Problem zu lösen, besteht darin, den Server mit PuTTY Console zu starten.

1
Koti Reddy

Gelöst Ich melde mich einfach bei xorg ab!

1
Nilesh

Ich verwendete Xming und bekam einen ähnlichen Fehler. Folgende Schritte wurden unternommen, um das Problem zu beheben:

  1. Aktivieren Sie beim Start von Xming das Kontrollkästchen Keine Zugriffskontrolle.
  2. In PuTTY wurde der folgende Befehl ausgeführt: DISPLAY=XXX.XXX.XXX.XX:0.0; export DISPLAY

Ersetzen Sie XXX.XXX.XXX.XX durch Ihre IP-Adresse.

1
Shashank

Führen Sie dies entweder in der Build-Phase von Jenkins durch, wenn Sie dies verwenden oder in/etc/profile festlegen:

unset DISPLAY
export DISPLAY=:0

legen Sie diese Eigenschaft dann entweder in Java-Code oder mit maven fest: - Djava.awt.headless = false

Ich habe mich einfach nicht von root abgemeldet, bevor.

0

die einzige Möglichkeit, wie ich es schaffen konnte, bestand darin, das Skript mit einer Vorlage auszuführen. z.B. Sudo ./glassfish-3.1.2.2-unix.sh -s Vorlage

Dadurch wird Glassfish im Silent-Modus installiert. http://docs.Oracle.com/cd/E18930_01/html/821-2427/ghmva.html

0
janex

Wenn Sie diesen Fehler in Hudson sehen, versuchen Sie, das Verzeichnis .Java aus Ihrem Home-Verzeichnis zu entfernen. Möglicherweise funktioniert es für Sie. 

0
user2945593

wechseln Sie zu einem anderen Benutzer und versuchen Sie es mit Ausnahme von root. Für mich geht das.

0
Vinod Ranga

Wenn Sie Ihren Code von Jenkins auslösen, kann es hilfreich sein, die Option "Xvfb vor dem Build starten und danach herunterfahren" zu aktivieren. Es hat mir geholfen.

0
Akshay Maldhure

Für Ubuntu 17.10 Installieren Sie den virtuellen X-Frame-Puffer (xvfb).

apt install xvfb

Und fügte diese Zeilen der Datei/etc/profile hinzu ...

# 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
0
cwilliamsz

Wenn ich den jconsole-Befehl an der Fernbedienung ausführe, stoße ich auf den gleichen Fehler. Ich möchte einen Parameter bei jconsole ändern, der auf einem Remote-Linux-Host ausgeführt wird. Ich kann mich beim Host mit SecureCRT anmelden. Das Terminal wirft diese Fehlerinformationen aus. Glücklicherweise, wenn Sie den PuTTY verwenden, ist es in Ordnung. Seltsam....

0
David

In meinem Fall betraf dieser Fehler nicht den DISPLAY-Port. Ich habe versucht, eine XML in Windchill (eine PLM-Software) zu laden, und habe nur den obigen Fehler auf dem Terminal erhalten. In einer Protokolldatei fand ich den Bericht, dass meine XML-Datei beschädigt war . Vielleicht hat jemand ein ähnliches Problem und kann diese Antwort verwenden.

0
LMN

Wenn Sie die Anwendung auf einem Remote-Server starten, während Sie von ssh angemeldet sind, können Sie ssh mit dem Parameter -x starten oder ForwardX11 no in Ihrem /etc/ssh/ssh_config hinzufügen. In diesem Fall erstellt ssh keine Umgebungsvariable DISPLAY.

0
user3132194