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 fui para esse arquivo de log específico, é isso que 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..
Atualizar:-
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
Respostas:
Eu 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 instalado ou a versão estiver incorreta, execute um
sudo apt-get install gtk
ou execute umsudo apt-get update
.EDITAR
O problema era que o SSH estava usando o SSH para se conectar remotamente a uma VM Linux e não tinha um X-Server configurado no Windows e não tinha o encaminhamento do X11 ativado. Depois de corrigir isso, o OP não deve ter nenhum problema ao executar o Eclipse.
fonte
sudo apt-get install gtk Reading package lists... Done Building dependency tree Reading state information... Done E: Unable to locate package gtk
. Não é capaz de localizar o pacote gtk de alguma forma .. Alguma idéia?sudo apt-cache search gtk
?Este também é o erro que você obtém se tentar iniciar o Eclipse pelo ssh sem encaminhar o acesso ao X.
ssh -X user@host
Ou seja, você esqueceu de executar ou esqueceu de incluirForwardX11 yes
na sua~/.ssh/config
entrada para o servidor.Estou adicionando esta resposta a qualquer pessoa que possa encontrar essa pergunta em uma pesquisa no Google, embora tecnicamente a OP esteja perguntando sobre um caso de VM.
fonte
Além disso, isso também pode ser causado pelo fato de o aplicativo não ter a autorização correta para exibir no controle remoto
X server
. Isso normalmente acontece quando você efetua login na sessão ssh como um usuário e executa um comando como outro usuário para lançar um aplicativo GUI. Por exemplo, quando você efetua login no servidor remoto e executa umsudo
comando. Para resolver esse problema, você precisará obter o cookie mágico do usuário que está efetuando login e importar o cookie para o usuário que está executando o comando.Como o usuário que está efetuando login no servidor ao qual tem autoridade para exibir
X
, execute:Então, como o usuário tentando executar o gui:
xauth
mesclarcookie_file
Depois que o cookie é importado para o usuário.
Xauthority
arquivo, você poderá executar a GUI.fonte
Xvfb :1 -ac -screen 0 1024x768x8 &
export DISPLAY=:1
sourceEncontrei um problema semelhante ao instalar o IBM Installation Manager (IBMIM) no CentOS 6.x e resolvi o problema instalando vários pacotes que foram a causa desse erro idêntico:
Solução parte 1 - pacotes ausentes
Algo semelhante a isso também poderia ter sido feito no Ubuntu.
Solução parte 2 - xauth
O outro problema que surgirá é que você está tentando executar o instalador do IBMIM (baseado em Eclipse) como o usuário raiz via sudo. Ao fazer isso, você obtém o erro acima do aplicativo do instalador:
Para contornar isso, você precisará
xauth add
adicionar o usuário inicial que efetuou login no$HOME/.Xauthority
arquivo raiz .Como usuário1:
Então como root:
Referências
fonte
Se você estiver executando um Linux com o Gnome:
Inicie um Gnome com uma sessão do Xorg:
Depois de clicar em seu nome de usuário no GDM (o gerenciador de boas-vindas / login), clique em seu nome de usuário e, antes de digitar a senha, clique na pequena engrenagem e selecione Gnome with Xorg e digite sua senha.
fonte
Depois de desativar o IPV6 na máquina remota, recebi a mensagem
org.eclipse.swt.SWTError: No more handles [gtk_init_check() failed]
ao usar o comandossh -X ub-dev /opt/eclipse/eclipse
. Para corrigir no Ubuntu 14.04, adicionei lineAddressFamily inet
ao arquivo/etc/ssh/sshd_config
e reiniciei o sshsudo service ssh restart
.fonte