socket servidor multiusuario hilos fuente con codigo cliente java linux x11 xserver

multiusuario - Java No se puede conectar al servidor de la ventana X11 usando ''localhost: 10.0'' como el valor de la variable DISPLAY



chat multiusuario java (23)

Creo que estás trabajando en modo sudo. Comprueba el modo de usuario y vuelve a intentarlo

Tengo un script que usa java para conectarme y mostrar X11 en el puerto 10.0 en localhost

pero siempre me sale este error

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)

He intentado todo para resolver este problema como:

export DISPLAY=:10.0 export DISPLAY=localhost:10.0

Probé también el puerto 0.0 pero siempre me sale el mismo error.

después de intentar xhost

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

¿Cómo puedo solucionar esto? Pensé que el servidor X no se está ejecutando, así que probé startx dice que está funcionando en ese puerto

Mi sistema es Ubuntu Server Edition 10.04


Después de varios días de inútil esfuerzo de instalar glassfish en la frambuesa pi 2 con fedora sin cabeza 22, Below trabajó para mí sin ningún problema

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

obtuve mi ayuda de here


Eliminar la variable DISPLAY

unset DISPLAY

Esto ayuda en la mayoría de los casos (por ejemplo, al iniciar servidores de aplicaciones u otras herramientas basadas en Java) y evita modificar todas esas líneas de comandos.

También puede ser cómodo agregarlo a .bash_profile para un usuario dedicado de aplicaciones-servidor / herramientas.


En caso de que alguien intente ejecutar las pruebas unitarias automatizadas a través de maven-surefire-plugin en CI (jenkins, ..), y obtenga el error mencionado anteriormente, asegúrese de actualizar la configuración del complemento surefire:

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


En mi caso este error no estaba relacionado con el puerto DISPLAY. Estaba intentando cargar un XML en Windchill (un software PLM) y solo recibí el error anterior en el terminal. En un archivo de registro encontré el informe de que mi archivo XML estaba dañado . Tal vez alguien tiene un problema similar y puede usar esta respuesta.


En mi caso, no quedaba espacio en mi máquina y enfrenté el mismo problema. Algunas veces podría ser el tema del espacio. Verifique el espacio en su entorno Linux / Unix y asegúrese de que su máquina tenga suficiente espacio.


Estaba usando Xming y obtuve un error similar. Se tomaron los siguientes pasos para solucionar el problema:

  1. En el lanzamiento de Xming marca la casilla sin control de acceso.
  2. En putty ejecutó el siguiente comando: DISPLAY=XXX.XXX.XXX.XX:0.0; export DISPLAY DISPLAY=XXX.XXX.XXX.XX:0.0; export DISPLAY

Reemplace XXX.XXX.XXX.XX con su dirección IP.


Este comando me ayudó a resolver el problema:

export DISPLAY=:0


Esto lo arreglará:

/usr/bin/java -Djava.awt.headless=true $Your_program


Me encuentro con el mismo error cuando ejecuto el comando jconsole en el control remoto. Quiero modificar un parámetro en jconsole que se ejecuta en un host remoto de Linux, puedo iniciar sesión en el host usando secureCRT, el terminal arroja esta información de error. Afortunadamente, cuando se usa la masilla, está bien. Extraño....


Michael-O dio un enfoque útil para resolver el problema. Otra forma de resolver esto es iniciar el servidor con Putty Console.


Para Ubuntu 17.10 instalar X virtual frame buffer (xvfb)

apt install xvfb

Y agregó estas líneas al archivo / etc / profile ...

# 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


Para mí, el problema era que xorg-x11-xauth no estaba instalado. Lo instalé y luego funcionó.

Los paquetes que tengo ahora son:

  • libX11-common-1.6.3-2.el6.noarch
  • libX11-1.6.3-2.el6.i686
  • libX11-1.6.3-2.el6.x86_64
  • xorg-x11-drv-ati-firware-7.6.1-2.el6.noarch
  • xorg-x11-xauth-1.0.9-1.el6.x86_64

Para mí, iniciar sesión como -Y en lugar de -X funcionó.

En caso de que tenga un X11 no confiable, como se muestra a continuación, pruebe con la opción -Y (si confía en el host):

Advertencia : falla la configuración de reenvío X11 no confiable: datos de clave xauth no generados


Primero, haga esto en la fase de compilación de Jenkins si usa o establece en / etc / profile:

unset DISPLAY export DISPLAY=:0

luego establezca esta propiedad en el código java o utilizando maven: -Djava.awt.headless = false


Primero: inicia XQuartz

Segundo: ssh -X usuario @ dirección_ip

...: comienza tu proceso

Si ssh y luego inicia XQuartz obtendrá ese error


Si está activando su código desde Jenkins, habilitar la opción "Iniciar Xvfb antes de la compilación y apagarlo después" podría ayudar. Me ayudó.


Si inicia la aplicación en un servidor remoto mientras está conectado con ssh, entonces otra forma sería iniciar ssh con el parámetro -x o agregar ForwardX11 no en su /etc/ssh/ssh_config . En este caso, ssh no creará la variable de entorno DISPLAY.


Si ve este error en Hudson, intente eliminar el directorio .java de su directorio de inicio, puede funcionar para usted.


Simplemente no me desconecté de la raíz antes de ejecutar ./studio.sh Todo listo.


cambia a otro usuario y prueba excepto root. esto funciona para mi.