J'essayais d'ouvrir Eclipse dans ma machine virtuelle Ubuntu avec la commande ci-dessous .. Et dès que je fais cela, je reçois toujours l'exception ci-dessous -
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.
donc quand je suis allé à ce fichier journal particulier, voici ce que je peux voir dans le journal -
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)
Quelqu'un sait-il ce qui s'est passé? Ou ce que je suis censé faire pour résoudre ce problème? Merci..
Mise à jour:-
Détails de la version ci-dessous -
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
Réponses:
Je pense que c'est un problème avec gtk. Vérifiez quelle version est installée.
dpkg -l libgtk[0-9]* | grep ^i
S'il n'est pas installé ou si la version est incorrecte, faites un
sudo apt-get install gtk
ou faites unsudo apt-get update
.MODIFIER
Le problème était que SSH utilisait SSH pour se connecter à distance à une machine virtuelle Linux et n'avait pas de serveur X configuré sur Windows et le transfert X11 n'était pas activé. Après avoir corrigé cela, l'OP ne devrait pas avoir de problèmes lors de l'exécution d'Eclipse.
la source
sudo apt-get install gtk Reading package lists... Done Building dependency tree Reading state information... Done E: Unable to locate package gtk
. Il n'est pas en mesure de localiser le paquet gtk d'une manière ou d'une autre. Une idée?sudo apt-cache search gtk
?C'est également l'erreur que vous obtenez si vous essayez de démarrer Eclipse via ssh sans transférer l'accès X. C'est-à-dire que vous avez oublié d'exécuter
ssh -X user@host
ou oublié d'inclureForwardX11 yes
dans votre~/.ssh/config
entrée pour le serveur.J'ajoute cette réponse à quiconque peut tomber sur cette question à partir d'une recherche Google même si techniquement, OP pose des questions sur un cas de machine virtuelle.
la source
En outre, cela peut également être dû au fait que l'application ne dispose pas de l'autorisation correcte pour s'afficher sur la télécommande
X server
. Cela se produit généralement lorsque vous vous connectez à la session ssh en tant qu'un utilisateur et exécutez une commande en tant qu'autre utilisateur pour lancer une application GUI. Par exemple, lorsque vous vous connectez au serveur distant et exécutez unesudo
commande. Pour résoudre ce problème, vous devrez obtenir le cookie magique de l'utilisateur qui se connecte et importer le cookie pour l'utilisateur exécutant la commande.En tant qu'utilisateur se connectant au serveur autorisé à afficher
X
, exécutez:Ensuite, en tant qu'utilisateur essayant d'exécuter l'interface graphique:
xauth
fusionnercookie_file
Une fois le cookie importé dans l'utilisateur.
Xauthority
, vous devriez pouvoir exécuter l'interface graphique.la source
Xvfb :1 -ac -screen 0 1024x768x8 &
export DISPLAY=:1
sourceJ'ai rencontré un problème similaire lors de l'installation d'IBM Installation Manager (IBMIM) sur CentOS 6.x et j'ai contourné le problème en installant plusieurs packages qui étaient à l'origine de cette erreur identique:
Solution partie 1 - Paquets manquants
Quelque chose de similaire aurait pu être fait sur Ubuntu également.
Solution partie 2 - xauth
L'autre problème qui se posera est que vous essayez d'exécuter le programme d'installation IBMIM (basé sur Eclipse) en tant qu'utilisateur root via sudo. Lorsque vous faites cela, vous obtiendrez l'erreur d'application ci-dessus du programme d'installation:
Pour contourner ce problème, vous devrez utiliser
xauth add
pour ajouter l'utilisateur initial auquel vous vous êtes connecté en tant que$HOME/.Xauthority
fichier racine .En tant qu'utilisateur1:
Puis en tant que root:
Les références
la source
Si vous utilisez un Linux avec Gnome:
Démarrer un gnome avec une session Xorg:
Après avoir cliqué sur votre nom d'utilisateur dans GDM (le gestionnaire d'accueil / de connexion), cliquez sur votre nom d'utilisateur et avant d'entrer le mot de passe, cliquez sur le petit engrenage et sélectionnez Gnome avec Xorg, puis entrez votre mot de passe
la source
Après avoir désactivé IPV6 sur la machine distante, j'ai reçu le message
org.eclipse.swt.SWTError: No more handles [gtk_init_check() failed]
lors de l'utilisation de la commandessh -X ub-dev /opt/eclipse/eclipse
. Pour corriger Ubuntu 14.04, j'ai ajouté une ligneAddressFamily inet
au fichier/etc/ssh/sshd_config
et redémarré sshsudo service ssh restart
.la source