Estoy intentando instalar una aplicación Java en mi máquina Linux (Slackware).
Recibí el siguiente error y no lo entiendo.
¿Podría aconsejarme cómo abordar el problema? Gracias.
Esto es lo que obtengo: (Veo que se debe configurar alguna variable de PANTALLA X11 , pero ¿qué valor debo 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)
Respuestas:
Si estás en la pantalla principal, entonces
o si está usando csh o tcsh
antes de ejecutar su aplicación.
De hecho, me sorprende que no se configure automáticamente. ¿Está intentando iniciar esta aplicación desde un terminal no gráfico? Si no es así, ¿ha modificado el .profile, .login, .bashrc o .cshrc predeterminado?
Tenga en cuenta que configurar la PANTALLA en: 0.0 presupone que está sentado en la pantalla principal, como dije, o al menos que la pantalla principal está conectada a su identificación de usuario. Si no ha iniciado sesión o es un ID de usuario diferente, esto fallará.
Si viene de otra máquina, y está en la pantalla principal de esa máquina y está ejecutando X, entonces puede usar "ssh -X nombre de host" para conectarse a ese host, y ssh reenviará la pantalla X hacia atrás. . ssh también se asegurará de que la variable de entorno DISPLAY esté configurada correctamente (siempre que no se esté alterando en los diversos archivos dot 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 caja local.
fuente
¿Está ejecutando esto desde un entorno X11? Puede usar una ventana de terminal, pero debe estar dentro de X (ya sea después de un inicio de sesión gráfico o ejecutando startx).
Si ya está dentro de un entorno gráfico, intente exportar DISPLAY =: 0 para shells tipo bash (bash, sh, etc.) o setenv DISPLAY: 0 para shells basados en shell C (csh, 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 Linux X estándar servidor).
fuente
export DISPLAY=:0
Debes habilitar el reenvío X11 en tu PuTTy
para hacerlo, abra PuTTy, vaya a Conexión => SSH => Túneles y marque la casilla Habilitar reenvío X11
También sudo al servidor y exporte la siguiente variable aquí IP es la IP de su máquina local
fuente
Una cosa más que podría ser el problema en un caso similar al descrito: X no se reenvía y $ DISPLAY no se establece 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 cual no se ve a menos que active el modo detallado (un IMO fallido). Por lo general, puede encontrar 'xauth' en un paquete con el mismo nombre.
fuente
Muy fácil, tuve este mismo problema, entonces lo que hice fue descargar e instalar una aplicación que ayudaría a mostrar y luego solucionó el error.
Descarga esta aplicación xming:
http://sourceforge.net/project/downloading.php ?
Instale, luego use la configuración en este enlace:
http://www.geo.mtu.edu/geoschem/docs/putty_install.html o siga estos pasos:
Instalación / configuración de PuTTy y Xming
Una vez que PuTTy y Xming se hayan descargado a la PC, instálelos de acuerdo con sus respectivas instrucciones.
Configurando Xming
Una vez que Xming esté instalado, ejecute la aplicación llamada 'XLaunch' y verifique que la configuración sea como se muestra:
Configuración de PuTTy
Después de instalar PuTTy, haga doble clic en el icono PuTTy en el escritorio y configure como se muestra:
Esto muestra cómo crear un perfil de inicio de sesión y luego guardarlo.
guarde el perfil y luego conéctese de forma remota al servidor para probar.
¡¡¡Salud!!!
fuente
Hay muchas maneras de hacer esto. Hice algo a continuación que me resultó conveniente y siempre funciona bien.
En el servidor, se genera el archivo .Xauthority y observe que la variable DISPLAY ya está configurada.
$ xauth list
$ xauth agregar
Para probarlo, escriba xclock o xeyes
Nota : Para cambiar de usuario, copie el archivo .Xauthority al directorio de inicio del usuario respectivo y también exporte la variable DISPLAY de ese usuario.
fuente
Tuve el mismo problema en Ubuntu 14.04.01 cuando intenté instalar JDK 8 y Netbeans si lanzo el script dentro de una terminal Byobu (tal vez con Screens ocurra lo mismo).
Simplemente salga de Byobu y (en una terminal gráfica) ejecute el script.
fuente
Verificación inicial.
1) Cuando esté exportando el DISPLAY 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 conózcalo. ¿Necesita verificarssh -X MachineIP
no requeriráxhost +
?2) Algunas veces
JCONSOLE
no mostrará todo su proceso, ya que esos procesos de JVM pueden ejecutarse con un usuario diferente y está exportando la PANTALLA con otro usuario. así que mejor sigueCD_DIR>sudo ./jconsole
3) En WAS (WEBSPHERE); jconsole no podrá conectar su proceso de servidor Java, esa vez solo vaya hasta el enlace, luego intente conectarlo. Esto funcionó para mí. Es posible que esta página esté inicializando algunas variables para permitir que jconsole se conecte con ese servidor.
Consola WAS> Servidores de aplicaciones> servidor1> Definición de proceso> Máquina virtual Java
Me he enfrentado al mismo problema con la máquina AIX (donde la interfaz de línea de comandos solo está disponible, no hay una interfaz de usuario de DISPLAY). Lo resolví instalando
Paso 1: A través de esa máquina con Windows, me conecté con la caja Unix donde la consola GUI está disponible.
Paso 2: SSH al cuadro AIX desde ese cuadro UNIX.
Paso 3: configure DISPLAY como "export DISPLAY = UNIXMACHINE: NXClientPORTConnectedMentmentedOnTitle"
Paso 4: Ahora, si lanzamos algún programa que requiera DISPLAY; se lanzará en esta caja UNIX.
Si instaló VNC en la caja UNIX donde la pantalla está disponible; entonces no se requiere Windows ni NX Client. Paso 1: Use VNC para conectarse con la caja Unix donde la consola GUI está disponible.
Paso 2: SSH al cuadro AIX desde ese cuadro UNIX.
Paso 3: configure DISPLAY como "export DISPLAY = UNIXMACHINE: VNCPORT"
Paso 4: Ahora, si lanzamos algún programa que requiera DISPLAY; se lanzará en esta caja UNIX.
MÁS
Paso 1: SSH al cuadro AIX desde ese cuadro UNIX.
Paso 2: configure DISPLAY como "export DISPLAY = UNIXMACHINE: VNCPORT"
Paso 3: Ahora, si lanzamos algún programa que requiera DISPLAY; se lanzará en esta caja UNIX.
fuente
Para aquellos que intentan que una aplicación X Window funcione desde Windows desde Linux:
Lo que funcionó para mí fue configurar el servidor xming en mi máquina con Windows, configurar la opción de reenvío X11 en putty cuando me conecto al host de Linux y pongo mi dirección IP de Windows con el puerto de pantalla y luego la variable de pantalla 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 servidor xming acepte el tráfico de ese host. Me tomó un tiempo darme cuenta de eso.
fuente
No olvide ejecutar "host +" en la máquina de visualización de su "inicio", y cuando ingrese a la máquina, haga "ssh -x nombre de host".
fuente