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:
- En el lanzamiento de Xming marca la casilla sin control de acceso.
- 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.
la única forma de hacerlo funcionar fue ejecutando el script con una plantilla. por ejemplo, sudo ./glassfish-3.1.2.2-unix.sh -s template
Esto instala Glassfish en modo silencioso. http://docs.oracle.com/cd/E18930_01/html/821-2427/ghmva.html
-Djava.awt.headless=true
especificar el parámetro -Djava.awt.headless=true
en el momento del inicio.