![org.eclipse.swt.SWTError: Больше нет дескрипторов [gtk_init_check() failed] при запуске eclipse в Ubuntu](https://rvso.com/image/51202/org.eclipse.swt.SWTError%3A%20%D0%91%D0%BE%D0%BB%D1%8C%D1%88%D0%B5%20%D0%BD%D0%B5%D1%82%20%D0%B4%D0%B5%D1%81%D0%BA%D1%80%D0%B8%D0%BF%D1%82%D0%BE%D1%80%D0%BE%D0%B2%20%5Bgtk_init_check()%20failed%5D%20%D0%BF%D1%80%D0%B8%20%D0%B7%D0%B0%D0%BF%D1%83%D1%81%D0%BA%D0%B5%20eclipse%20%D0%B2%20Ubuntu.png)
Я пытался открыть Eclipse в моей виртуальной машине Ubuntu с помощью следующей команды. И как только я это делаю, я всегда получаю следующее исключение:
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.
Итак, когда я зашел в этот конкретный файл журнала, вот что я увидел в журнале:
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)
Кто-нибудь знает, что случилось? Или что мне делать, чтобы исправить эту проблему? Спасибо..
Обновлять:-
Подробности версии ниже -
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
решение1
Это также ошибка, которую вы получаете, если пытаетесь запустить Eclipse через ssh без перенаправления доступа X. Т.е. вы забыли запустить ssh -X user@host
или забыли включить ForwardX11 yes
в свою ~/.ssh/config
запись для сервера.
Я добавляю этот ответ для тех, кто может наткнуться на этот вопрос в поиске Google, хотя технически автор вопроса спрашивает о случае с виртуальной машиной.
решение2
Я думаю, что это проблема с gtk. Проверьте, какая версия установлена.
dpkg -l libgtk[0-9]* | grep ^i
Если он не установлен или имеет неправильную версию, выполните sudo apt-get install gtk
или выполните sudo apt-get update
.
РЕДАКТИРОВАТЬ
Проблема была в том, что SSH использовал SSH для удаленного доступа к виртуальной машине Linux, и не имел настроенного X-Server на Windows и не имел включенного перенаправления X11. После того, как это будет исправлено, у OP не должно возникнуть никаких проблем с запуском Eclipse.
решение3
Кроме того, это может быть вызвано тем, что приложение не имеет правильной авторизации для отображения на удаленном компьютере X server
. Обычно это происходит, когда вы входите в сеанс ssh как один пользователь и выполняете команду как другой пользователь для запуска приложения с графическим интерфейсом. Например, когда вы входите на удаленный сервер и выполняете команду sudo
. Чтобы решить эту проблему, вам нужно будет получить волшебный файл cookie пользователя, который входит в систему, и импортировать файл cookie для пользователя, который запускает команду.
Как пользователь, входящий на сервер и имеющий полномочия на отображение X
, выполните:
xauth extract cookie_file $DISPLAY
Затем, когда пользователь пытается запустить графический интерфейс:
xauth
mergecookie_file
После импорта cookie-файла в пользовательский Xauthority
файл . вы сможете запустить графический интерфейс.
решение4
Если вы работаете в Linux с Gnome:
Запустите Gnome с сеансом Xorg:
После нажатия на свое имя пользователя в GDM (менеджер приветствия/входа в систему), нажмите на свое имя пользователя и перед вводом пароля нажмите на маленькую шестеренку и выберите Gnome с Xorg, затем введите свой пароль.