Estaba tratando de abrir eclipse en mi ubuntu VM con el siguiente comando ... Y tan pronto como hago eso, siempre obtengo la siguiente excepción:
ubuntu@username-dyn-vm1-48493:~$ eclipse
Eclipse:
An error has occurred. See the log file
/home/ubuntu/.eclipse/org.eclipse.platform_3.8_155965261/configuration/1381367113197.log.
así que cuando fui a ese archivo de registro en particular, esto es lo que puedo ver en el registro:
ubuntu@username-dyn-vm1-48493:~$ more /home/ubuntu/.eclipse/org.eclipse.platform_3.8_155965261/configuration/1381367113197.log
!SESSION 2013-10-10 01:05:13.088 -----------------------------------------------
eclipse.buildId=debbuild
java.version=1.7.0_25
java.vendor=Oracle Corporation
BootLoader constants: OS=linux, ARCH=x86_64, WS=gtk, NL=en_US
Command-line arguments: -os linux -ws gtk -arch x86_64
!ENTRY org.eclipse.osgi 4 0 2013-10-10 01:05:17.555
!MESSAGE Application error
!STACK 1
org.eclipse.swt.SWTError: No more handles [gtk_init_check() failed]
at org.eclipse.swt.SWT.error(SWT.java:4387)
at org.eclipse.swt.widgets.Display.createDisplay(Display.java:914)
at org.eclipse.swt.widgets.Display.create(Display.java:900)
at org.eclipse.swt.graphics.Device.<init>(Device.java:156)
at org.eclipse.swt.widgets.Display.<init>(Display.java:498)
at org.eclipse.swt.widgets.Display.<init>(Display.java:489)
at org.eclipse.ui.internal.Workbench.createDisplay(Workbench.java:716)
at org.eclipse.ui.PlatformUI.createDisplay(PlatformUI.java:161)
at org.eclipse.ui.internal.ide.application.IDEApplication.createDisplay(IDEApplication.java:154)
at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:96)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:353)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:180)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:629)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:584)
at org.eclipse.equinox.launcher.Main.run(Main.java:1438)
at org.eclipse.equinox.launcher.Main.main(Main.java:1414)
¿Alguien sabe qué ha pasado mal? ¿O qué se supone que debo hacer para solucionar este problema? Gracias..
Actualizar:-
Detalles de la versión a continuación:
ubuntu@username-dyn-vm1-48493:~$ dpkg -l libgtk[0-9]* | grep ^i
ii libgtk2.0-0:amd64 2.24.17-0ubuntu2 amd64 GTK+ graphical user interface library
ii libgtk2.0-bin 2.24.17-0ubuntu2 amd64 programs for the GTK+ graphical user interface library
ii libgtk2.0-common 2.24.17-0ubuntu2 all common files for the GTK+ graphical user interface library
Respuestas:
Creo que esto es un problema con GTK. Comprueba qué versión está instalada.
dpkg -l libgtk[0-9]* | grep ^i
Si no está instalado o es la versión incorrecta, haga una
sudo apt-get install gtk
o unasudo apt-get update
.EDITAR
El problema era que SSH estaba usando SSH para remotamente en una VM Linux y no tenía un X-Server configurado en Windows y no tenía habilitado el reenvío X11. Después de enderezarse, el OP no debería tener problemas para ejecutar Eclipse.
fuente
sudo apt-get install gtk Reading package lists... Done Building dependency tree Reading state information... Done E: Unable to locate package gtk
. No es capaz de localizar el paquete gtk de alguna manera ... ¿Alguna idea?sudo apt-cache search gtk
?Este también es el error que obtiene si intenta iniciar Eclipse a través de ssh sin reenviar el acceso X. Es decir, olvidó ejecutar
ssh -X user@host
u olvidó incluirForwardX11 yes
en su~/.ssh/config
entrada para el servidor.Estoy agregando esta respuesta para cualquiera que pueda tropezar con esta pregunta en una búsqueda de Google, aunque técnicamente OP está preguntando sobre un caso de VM.
fuente
Además, esto también puede deberse a que la aplicación no tiene la autorización correcta para mostrar al control remoto
X server
. Esto suele suceder cuando inicia sesión en la sesión ssh como un usuario y ejecuta un comando como otro usuario para iniciar una aplicación GUI. Por ejemplo, cuando inicia sesión en el servidor remoto y ejecuta unsudo
comando. Para resolver este problema, deberá obtener la cookie mágica del usuario que inicia sesión e importar la cookie para el usuario que ejecuta el comando.Cuando el usuario inicie sesión en el servidor que tiene autoridad para mostrar
X
, ejecute:Luego, cuando el usuario intenta ejecutar la interfaz gráfica de usuario:
xauth
fusionarcookie_file
Una vez que la cookie se importa al usuario.
Xauthority
archivo, debe poder ejecutar la GUI.fuente
Xvfb :1 -ac -screen 0 1024x768x8 &
export DISPLAY=:1
fuenteMe encontré con un problema similar al instalar IBM Installation Manager (IBMIM) en CentOS 6.x y solucioné el problema instalando varios paquetes que fueron la causa de este error idéntico:
Solución parte 1 - paquetes faltantes
Algo similar a esto podría haberse hecho también en Ubuntu.
Solución parte 2 - xauth
El otro problema que surgirá es que está intentando ejecutar el instalador de IBMIM (basado en Eclipse) como usuario root a través de sudo. Cuando haga esto, obtendrá el error de aplicación anterior del instalador:
Para solucionar este problema, deberá usar
xauth add
para agregar el usuario inicial con el que inició sesión en el$HOME/.Xauthority
archivo raíz .Como usuario1:
Luego como raíz:
Referencias
fuente
Si está ejecutando en un Linux con Gnome:
Comience un Gnomo con una sesión de Xorg:
Después de hacer clic en su nombre de usuario en GDM (el administrador de bienvenida / inicio de sesión), haga clic en su nombre de usuario y antes de ingresar la contraseña, haga clic en el pequeño engranaje y seleccione Gnome con Xorg, luego ingrese su contraseña
fuente
Después de deshabilitar IPV6 en la máquina remota, recibí el mensaje
org.eclipse.swt.SWTError: No more handles [gtk_init_check() failed]
al usar el comandossh -X ub-dev /opt/eclipse/eclipse
. Para arreglarlo en Ubuntu 14.04 agregué una líneaAddressFamily inet
al archivo/etc/ssh/sshd_config
y reinicié sshsudo service ssh restart
.fuente