Ich habe versucht, Eclipse in meiner Ubuntu-VM mit dem folgenden Befehl zu öffnen. Und sobald ich das tue, erhalte ich immer die folgende Ausnahme:
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.
Wenn ich zu dieser bestimmten Protokolldatei ging, ist dies das, was ich im Protokoll sehen kann -
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)
Weiß jemand was schief gelaufen ist? Oder was soll ich tun, um dieses Problem zu beheben? Vielen Dank..
Aktualisieren:-
Versionsdetails unten -
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
Antworten:
Ich denke das ist ein Problem mit gtk. Überprüfen Sie, welche Version installiert ist.
dpkg -l libgtk[0-9]* | grep ^i
Wenn es nicht installiert ist oder die falsche Version ist, führen Sie ein
sudo apt-get install gtk
oder ein aussudo apt-get update
.BEARBEITEN
Das Problem bestand darin, dass SSH SSH zum Remote-Zugriff auf eine Linux-VM verwendete, unter Windows keinen X-Server eingerichtet und die X11-Weiterleitung nicht aktiviert hatte. Nachdem das geklärt wurde, sollte das OP keine Probleme mehr mit Eclipse haben.
quelle
sudo apt-get install gtk Reading package lists... Done Building dependency tree Reading state information... Done E: Unable to locate package gtk
. Das Paket gtk kann nicht gefunden werden. Irgendeine Idee?sudo apt-cache search gtk
?Dies ist auch der Fehler, den Sie erhalten, wenn Sie versuchen, Eclipse über ssh zu starten, ohne den X-Zugriff weiterzuleiten. Dh Sie haben vergessen zu laufen
ssh -X user@host
oder vergessen,ForwardX11 yes
in Ihren~/.ssh/config
Eintrag für den Server aufzunehmen.Ich füge diese Antwort für jeden hinzu, der über diese Frage aus einer Google-Suche stolpert, obwohl OP technisch nach einem VM-Fall fragt.
quelle
Darüber hinaus kann dies auch darauf zurückzuführen sein, dass die Anwendung nicht über die richtige Berechtigung zum Anzeigen auf der Fernbedienung verfügt
X server
. Dies geschieht normalerweise, wenn Sie sich als ein Benutzer bei der SSH-Sitzung anmelden und als ein anderer Benutzer einen Befehl ausführen, um eine GUI-Anwendung zu starten. Zum Beispiel, wenn Sie sich beim Remote-Server anmelden und einensudo
Befehl ausführen . Um dieses Problem zu beheben, müssen Sie das Magic Cookie des Benutzers abrufen, der sich anmeldet, und das Cookie für den Benutzer importieren, der den Befehl ausführt.X
Führen Sie als Benutzer, der sich bei dem Server anmeldet, für den die Berechtigung zum Anzeigen besteht , Folgendes aus:Dann als der Benutzer versucht, die GUI:
xauth
Merge auszuführencookie_file
Sobald der Cookie in den Benutzer importiert wurde.
Xauthority
Datei sollten Sie in der Lage sein, die GUI auszuführen.quelle
Xvfb :1 -ac -screen 0 1024x768x8 &
export DISPLAY=:1
sourceBei der Installation von IBM Installation Manager (IBMIM) unter CentOS 6.x trat ein ähnliches Problem auf. Das Problem wurde umgangen, indem mehrere Pakete installiert wurden, die die Ursache für diesen identischen Fehler darstellten:
Lösung Teil 1 - fehlende Pakete
Ähnliches hätte man auch mit Ubuntu machen können.
Lösung Teil 2 - xauth
Das andere Problem ist, dass Sie versuchen, das IBMIM-Installationsprogramm (Eclipse-basiert) als Root-Benutzer über sudo auszuführen. Wenn Sie dies tun, erhalten Sie den obigen Anwendungsfehler vom Installationsprogramm:
Um dies zu umgehen, müssen
xauth add
Sie den ersten Benutzer hinzufügen, den Sie als root-$HOME/.Xauthority
Datei angemeldet haben .Als Benutzer1:
Dann als root:
Verweise
quelle
Wenn Sie mit Gnome unter Linux arbeiten:
Starte einen Gnome mit einer Xorg-Sitzung:
Klicken Sie nach dem Klicken auf Ihren Benutzernamen in GDM (dem Begrüßungs- / Anmeldungsmanager) auf Ihren Benutzernamen und vor der Eingabe des Passworts auf das kleine Zahnrad und wählen Sie Gnome mit Xorg aus. Geben Sie dann Ihr Passwort ein
quelle
Nach dem Deaktivieren von IPV6 auf dem Remotecomputer erhielt ich die Nachricht
org.eclipse.swt.SWTError: No more handles [gtk_init_check() failed]
bei Verwendung des Befehlsssh -X ub-dev /opt/eclipse/eclipse
. Um das Problem unter Ubuntu 14.04 zu beheben, habe ichAddressFamily inet
der Datei eine Zeile hinzugefügt/etc/ssh/sshd_config
und ssh neu gestartetsudo service ssh restart
.quelle