org.eclipse.swt.SWTError: Não há mais manipuladores [gtk_init_check () falhou] durante a execução do eclipse no ubuntu

22

Eu estava tentando abrir o eclipse na minha VM do ubuntu com o comando abaixo. E assim que faço isso, sempre recebo a exceção abaixo -

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.

então quando eu fui para aquele arquivo de log em particular, isso é o que eu posso ver no log -

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)

Alguém sabe o que aconteceu de errado? Ou o que devo fazer para corrigir esse problema? Obrigado ..

Atualização: -

Detalhes da versão abaixo -

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
    
por SSH 10.10.2013 / 20:55

6 respostas

4

Acho que isso é um problema com o gtk. Verifique qual versão está instalada.

dpkg -l libgtk[0-9]* | grep ^i

Se não estiver instalada ou estiver na versão incorreta, faça um sudo apt-get install gtk ou faça um sudo apt-get update .

EDITAR

O problema era que o SSH estava usando o SSH para remoto em uma VM Linux e não tinha um X-Server configurado no Windows e não tinha o encaminhamento X11 habilitado. Depois de obter isso, o OP não deve ter problemas ao executar o Eclipse.

    
por 10.10.2013 / 21:04
9

Este também é o erro que você recebe se tentar iniciar o Eclipse sobre o ssh sem redirecionar o acesso ao X. Ou seja, você esqueceu de executar ssh -X user@host ou esqueceu de incluir ForwardX11 yes na sua entrada ~/.ssh/config para o servidor.

Estou adicionando essa resposta para qualquer pessoa que possa se deparar com essa pergunta em uma pesquisa do Google, embora, tecnicamente, o OP esteja perguntando sobre um caso de VM.

    
por 06.07.2015 / 11:43
4

Além disso, isso também pode ser causado pelo aplicativo não ter a autorização correta para exibir para o controle remoto X server . Isso geralmente acontece quando você faz login na sessão ssh como um usuário e executa um comando como outro usuário para ativar um aplicativo GUI. Por exemplo, quando você efetuar login no servidor remoto e executar um comando sudo . Para resolver esse problema, você precisará obter o cookie mágico do usuário que faz o login e importar o cookie para o usuário que está executando o comando.

Quando o usuário faz login no servidor que tem autoridade para exibir para X , execute:

xauth extract cookie_file $DISPLAY

Então, enquanto o usuário tenta executar o gui: xauth merge cookie_file

Uma vez que o cookie é importado para o arquivo Xauthority do usuário, você deve ser capaz de executar a GUI.

    
por 23.01.2015 / 09:10
3

Eu tive um problema semelhante ao instalar o IBM Installation Manager (IBMIM) no CentOS 6.xe resolvi o problema instalando vários pacotes que eram a causa desse erro idêntico:

$ sudo /opt/IBM/InstallationManager/eclipse/IBMIM \
       -record /root/was8nd_v85_install.xml \
       -skipInstall /tmp/was8nd

00:00.46 ERROR [main] org.eclipse.equinox.log.internal.ExtendedLogReaderServiceFactory safeLogged
  Application error
  org.eclipse.swt.SWTError: No more handles [gtk_init_check() failed]
  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:913)
    at org.eclipse.swt.widgets.Display.create(Display.java:899)
    at org.eclipse.swt.graphics.Device.<init>(Device.java:156)
    ...
IBMIM:
An error has occurred. See the log file
/opt/IBM/InstallationManager/eclipse/configuration/1457978953529.log.

Solução parte 1 - pacotes ausentes

$ sudo yum install \
   gtk2            \
   libXtst         \
   gnome-desktop   \
   xorg-x11-xauth  \
   dejavu-lgc-sans-fonts 

Algo parecido com isso poderia ter sido feito no Ubuntu também.

Solução parte 2 - xauth

O outro problema que surgirá é que você está tentando executar o instalador IBMIM (baseado no Eclipse) como o usuário root via sudo. Quando você fizer isso, obterá o erro de aplicativo acima do instalador:

00:00.46 ERROR [main] org.eclipse.equinox.log.internal.ExtendedLogReaderServiceFactory safeLogged
  Application error
  org.eclipse.swt.SWTError: No more handles [gtk_init_check() failed]
  org.eclipse.swt.SWTError: No more handles [gtk_init_check() failed]

Para contornar isso, você precisará usar xauth add para adicionar o usuário inicial com o qual você efetuou login como o arquivo $HOME/.Xauthority do root.

Como usuário1:

$ xauth list
ip-10-10-10-10.us-west-1.compute.internal/unix:10  MIT-MAGIC-COOKIE-1  6902e8c245a01ca50XXXXXXXXXXXXXXXX

Então, como root:

$ xauth add ip-10-10-10-10.us-west-1.compute.internal/unix:10  MIT-MAGIC-COOKIE-1  6902e8c245a01ca50XXXXXXXXXXXXXXXX
xauth:  creating new authority file /root/.Xauthority

$ xauth list
ip-10-10-10-10.us-west-1.compute.internal/unix:10  MIT-MAGIC-COOKIE-1  6902e8c245a01ca50XXXXXXXXXXXXXXXX

Referências

por 14.03.2016 / 16:16
0

Se você está rodando em um linux com o Gnome:

Inicie um Gnome com uma sessão do Xorg:

Depois de clicar no seu nome de usuário no GDM (o gerenciador de saudação / login), clique no seu nome de usuário e antes de digitar a senha, clique na pequena engrenagem e selecione Gnome com Xorg e digite sua senha

    
por 19.09.2018 / 15:55
-1

Após desabilitar o IPV6 no computador remoto, recebi a mensagem org.eclipse.swt.SWTError: No more handles [gtk_init_check() failed] ao usar o comando ssh -X ub-dev /opt/eclipse/eclipse . Para corrigir no Ubuntu 14.04, adicionei a linha AddressFamily inet ao arquivo /etc/ssh/sshd_config e reiniciei o ssh sudo service ssh restart .

    
por 31.08.2015 / 15:02