![org.eclipse.swt.SWTError: No hay más identificadores [gtk_init_check() falló] al ejecutar eclipse en ubuntu](https://rvso.com/image/51202/org.eclipse.swt.SWTError%3A%20No%20hay%20m%C3%A1s%20identificadores%20%5Bgtk_init_check()%20fall%C3%B3%5D%20al%20ejecutar%20eclipse%20en%20ubuntu.png)
Estaba intentando abrir eclipse en mi VM ubuntu con el siguiente comando. Y tan pronto como lo hago, siempre aparece 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.
Entonces, 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é mal ha pasado? ¿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
Respuesta1
Este también es el error que obtienes si intentas iniciar Eclipse a través de ssh sin reenviar el acceso X. Es decir, olvidó ejecutar ssh -X user@host
u olvidó incluirlo ForwardX11 yes
en su ~/.ssh/config
entrada para el servidor.
Estoy agregando esta respuesta para cualquiera que pueda toparse con esta pregunta al realizar una búsqueda en Google, aunque técnicamente OP esté preguntando sobre un caso de VM.
Respuesta2
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 una versión incorrecta, haga un archivo sudo apt-get install gtk
o haga un archivo sudo apt-get update
.
EDITAR
El problema era que SSH estaba usando SSH de forma remota a una máquina virtual Linux y no tenía un X-Server configurado en Windows y no tenía el reenvío X11 habilitado. Después de aclarar eso, el OP no debería tener ningún problema al ejecutar Eclipse.
Respuesta3
Además, esto también puede deberse a que la aplicación no tenga la autorización correcta para mostrarse en el 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 un sudo
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.
Como usuario que inicia sesión en el servidor que tiene autoridad para mostrar X
, ejecute:
xauth extract cookie_file $DISPLAY
Luego, cuando el usuario intenta ejecutar la interfaz gráfica de usuario:
xauth
fusionarcookie_file
Una vez que la cookie se importa al archivo . Xauthority
archivo, debería poder ejecutar la GUI.
Respuesta4
Si está ejecutando Linux con Gnome:
Inicie un Gnome con una sesión 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.