2009-03-19 16 views
71

Estoy tratando de instalar un programa (una aplicación Java) en mi máquina Linux (estoy usando Slackware). Recibí el siguiente error y no lo entiendo. ¿Podría aconsejarme cómo abordar el problema? No estoy seguro de si este es un tipo de pregunta que podría hacer aquí, porque no es exactamente una pregunta de programación, pero agradecería que respondiera. Gracias."Sin variable X11 DISPLAY" - ¿qué significa?

Esto es lo que me sale: (? Veo que alguna variable X11 DISPLAY necesita configurarse, pero ¿qué valor debería darle y cómo)

~$ 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) 
+0

tengo el mismo problema, funciona perfectamente en la consola pero cuando uso eclipse arroja la misma excepción incluso coloco esas líneas de código: Proceso proc_exporting = Runtime.getRuntime(). Exec ("sudo export DISPLAY =: 0.0 "); todavía no funciona –

+1

Ninguna de las respuestas proporciona la información necesaria para resolver este problema cuando se conecta a una consola de forma remota a través de puTTY. Cualquier respuesta que se dirija a SSH en realidad no explica cómo hacer que funcione. ¿Alguien sabe de una pregunta que aborda esto? –

Respuesta

88

Si estás en la pantalla principal, entonces

export DISPLAY=:0.0 

o si está utilizando csh

setenv DISPLAY :0.0 

antes de ejecutar la aplicación.

En realidad, me sorprende que no se configure automáticamente. ¿Estás tratando de iniciar esta aplicación desde un terminal no gráfico? Si no, ¿ha modificado el .profile, .login, .bashrc o .cshrc predeterminado?

Tenga en cuenta que establecer la PANTALLA en: 0.0 supone que está sentado en la pantalla principal, como ya he dicho, o al menos que la pantalla principal está conectada a su identificación de usuario. Si no está conectado, o es un ID de usuario diferente, esto no funcionará.

Si vienes desde otra máquina, y estás en la pantalla principal de esa máquina y está ejecutando X, entonces puedes usar "ssh -X hostname" para conectarte a ese host, y ssh reenviará la X muestra de nuevo. ssh también se asegurará de que la variable de entorno DISPLAY esté configurada correctamente (siempre que no esté siendo interferida en los diversos archivos de puntos que mencioné anteriormente). En una sesión "ssh -X", la variable de entorno DISPLAY tendrá un valor como "localhost: 11.0", que apuntará al socket que ssh está haciendo un túnel a su casilla local.

+0

Hola, muchas gracias, el primero me funcionó. Sí, lo estoy comenzando desde un terminal no gráfico. – user42155

+0

Parece que quiere acceder a la pantalla gráfica. Tenga cuidado de no ejecutarlo cuando la pantalla gráfica no esté disponible o pertenezca a algún otro ID de usuario. –

+3

tenga en cuenta que esto funcionó porque está/estaba en la consola. si estuvieras en otra terminal, tendrías que tener un servidor X ejecutándose en la terminal y luego configurar el entorno para que apunte a tu máquina (exportar DISPLAY = 'nombre de host de pauls terminal': 0.0 por ejemplo) – KevinDTimm

9

¿Está ejecutando esto desde un entorno X11? Puede usar una ventana de terminal, pero tiene que estar dentro de X (ya sea después de un inicio de sesión gráfico o ejecutando startx).

Si ya se encuentra dentro de un entorno gráfico, intente export DISPLAY =: 0 para fiesta como conchas (bash, sh, etc) o DISPLAY setenv: 0 conchas shell C (CSH base, tcsh, etc.)

Si se ha conectado desde otra máquina a través de SSH, use la opción -X para mostrar la interfaz gráfica en la máquina en la que está sentado (siempre que haya un servidor X ejecutándose allí (como xming para Windows y su estándar) Linux X servidor).

+0

Hola, estoy corriendo startx. – user42155

+0

Oh cierto, Slackware. ¿Sigue siendo tan descabellado como lo fue cuando lo utilicé por última vez hace 10 años? –

+0

Todavía se inicia de forma predeterminada en el nivel de ejecución 3. Por supuesto, si le indica que comience en el nivel de ejecución 5, obtendrá un menú de inicio de sesión de KDM bastante bueno suponiendo que instaló KDE. –

-3

no se olvide de ejecutar "host +" en la máquina de visualización "casa", y cuando se hace ssh a la máquina que estás haciendo "ssh -X nombre de host"

-Tee

+14

Recomiendo encarecidamente no usar "xhost +", ya que si efectivamente se desactiva toda la seguridad en su servidor X. ssh es lo suficientemente inteligente como para usar xauth para configurar la autenticación X11 automáticamente, por lo que no debería ser necesario usar xhost. –

+0

Esto debería ser un comentario, no una publicación. Solo porque no puedas comentar no significa que debas hacer una mala publicación. –

0

Tuve el mismo problema en Ubuntu 14.04.01 cuando traté de instalar JDK 8 y Netbeans si ejecuto el script dentro de un terminal Byobu (quizás con Screens sucede lo mismo).

Solo salga de Byobu y (en un terminal gráfico) ejecute el script.

0

Comprobación inicial.

1) Cuando está exportando la PANTALLA a otra máquina, asegúrese de haber ingresado el comando xhost + en esa máquina. Este comando permite a otra máquina exportar su DISPLAY en esta máquina. Puede haber restricciones de seguridad, solo saber al respecto. ¿Necesita verificar ssh -X MachineIP no requerirá xhost +?

2) Algunas veces JCONSOLE no mostrará todo su proceso, ya que esos procesos JVM pueden ejecutarse con usuarios diferentes y usted está exportando la PANTALLA con otro usuario. así que es mejor seguir CD_DIR>sudo ./jconsole

3) En WAS (WEBSPHERE); jconsole no podrá conectar su proceso de servidor java, esa vez simplemente vaya hasta el enlace, luego intente conectarlo. Esto funcionó para mí. Puede ser que esta página esté inicializando algunas variables para permitir que jconsole se conecte con ese servidor.

ERA consola> Servidores de aplicaciones> server1> Definición de proceso> Máquina virtual Java


me he enfrentado el mismo problema con AIX (donde la interfaz de línea de comandos sólo está disponible, no se visualiza la interfaz de usuario) de la máquina. Resolví mediante la instalación de

NX cliente para Windows

Paso 1: A través de esa máquina Windows, he conectado con la caja de UNIX donde consola GUI está disponible.
Paso 2: SSH a la caja de AIX de esa caja de UNIX.
Paso 3: configure DISPLAY como "export DISPLAY = UNIXMACHINE: NXClientPORTConnectedMentionedOnTitle"
Paso 4: Ahora si lanzamos cualquier programa que requiera DISPLAY; se lanzará en esta caja UNIX.

VNC

Si ha instalado VNC en caja de UNIX en pantalla está disponible; entonces Windows y NX Client no son necesarios. Paso 1: Use VNC para conectarse con el cuadro Unix donde está disponible la consola GUI.
Paso 2: SSH a la caja de AIX de esa caja de UNIX.
Paso 3: configure la PANTALLA como "export DISPLAY = UNIXMACHINE: VNCPORT"
Paso 4: Ahora si lanzamos cualquier programa que requiera DISPLAY; se lanzará en esta caja UNIX.

ELSE

Paso 1: SSH a la caja de AIX de esa caja de UNIX.
Paso 2: configure la PANTALLA como "export DISPLAY = UNIXMACHINE: VNCPORT"
Paso 3: Ahora si lanzamos cualquier programa que requiera DISPLAY; se lanzará en esta caja UNIX.

4

Una cosa más que podría ser el problema en un caso similar al descrito: X no se reenvía y $ DISPLAY no está configurado cuando el programa 'xauth' no está instalado en el lado remoto. Puede ver que lo busca cuando ejecuta "ssh -Xv ip_address" y, si no se encuentra, falla, lo que no se ve a menos que active el modo detallado (un error IMO). Por lo general, puede encontrar 'xauth' en un paquete con el mismo nombre.

1

Muy fácil, tenía este mismo problema, entonces lo que hice fue descargar e instalar una aplicación que ayudaría a mostrar y luego se corrigió el error.

descargar esta aplicación Xming:

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

instalar, a continuación, utilizar la configuración en este enlace:

http://www.geo.mtu.edu/geoschem/docs/putty_install.html o seguir los siguientes pasos:

Instalación/Configuración masilla y Xming

Una vez masilla y Xming se han descargado en el PC, instalar de acuerdo a sus respectivas instrucciones.

Configuración Xming

Una vez instalado Xming, ejecute la aplicación llamada 'XLaunch' y que los valores seleccionados son como se muestra:

  • seleccione las entradas predeterminada en Windows Configuración de pantalla, haga clic en siguiente
  • haga clic en Siguiente en la ventana Tipo de sesión.
  • haga clic en siguiente en la ventana Parámetros adicionales (la casilla de verificación del portapapeles es verdadera)
  • guarde la configuración y haga clic para terminar.

Configuración PuTTy

Después de instalar masilla, haga doble clic en el icono en el escritorio PuTTy y configurar como se muestra:

Esto demuestra la creación de un perfil de inicio de sesión y luego guardarlo.

  • En ssh -> X11, haga clic en la casilla de verificación para habilitar el reenvío de X11.
  • en la pantalla X ubicación cuadro de texto, escriba localhost: 0,0

Guardar perfil luego conectarse de forma remota al servidor para probar.

¡Salud!

+0

Incluya la información esencial de los enlaces en la respuesta en sí, ya que pueden desaparecer eventualmente, haciendo que la respuesta sea inútil. – plamut

4

debe habilitar de X11 en que PuTTy

hacerlo abierta masilla, ir a Conexión => SSH => Túneles y marca de verificación de la Enable X11 expedición

también sudo al servidor y exportar la variable más adelante aquí es IP IP de la máquina local

export DISPLAY=10.75.75.75:0.0 

enter image description here

0

Para aquellos que están tratando de conseguir una aplicación X Window trabajo de Windows desde Linux:

lo que funcionó para mí fue de configurar xming servidor en mi máquina Windows, establezca la opción de reenvío X11 en la masilla cuando me conecto a el host de Linux y poner en mi dirección IP de Windows con el puerto de visualización y luego la variable de visualización con mi dirección IP de Windows: 0.0

No olvide agregar la dirección IP de los hosts de Linux al archivo X0.hosts para asegurarse de que el xming el servidor acepta el tráfico de ese host. Me tomó un tiempo darme cuenta de eso.

Cuestiones relacionadas