Я пытался открыть 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
Ответы:
Я думаю, что это проблема с GTK. Проверьте, какая версия установлена.
dpkg -l libgtk[0-9]* | grep ^i
Если он не установлен или является неправильной версией, то выполните a
sudo apt-get install gtk
или сделайтеsudo apt-get update
.РЕДАКТИРОВАТЬ
Проблема заключалась в том, что SSH использовал SSH для удаленного доступа к виртуальной машине Linux, и на нем не был установлен X-сервер в Windows и не была включена переадресация X11. После того, как это было исправлено, у OP не должно быть проблем с Eclipse.
источник
sudo apt-get install gtk Reading package lists... Done Building dependency tree Reading state information... Done E: Unable to locate package gtk
. Это не в состоянии найти пакет GTK как-то .. Есть идеи?sudo apt-cache search gtk
?Это также ошибка, которую вы получите, если попытаетесь запустить Eclipse через ssh без переадресации X-доступа. Т.е. вы забыли запустить
ssh -X user@host
или забыли включитьForwardX11 yes
в свою~/.ssh/config
запись для сервера.Я добавляю этот ответ для всех, кто может наткнуться на этот вопрос из поиска в Google, хотя технически OP спрашивает о случае виртуальной машины.
источник
Кроме того, это также может быть вызвано тем, что приложение не имеет правильной авторизации для отображения на удаленном компьютере
X server
. Обычно это происходит, когда вы входите в сеанс ssh от имени одного пользователя и выполняете команду от имени другого пользователя для запуска приложения с графическим интерфейсом. Например, когда вы входите на удаленный сервер и выполняетеsudo
команду. Чтобы решить эту проблему, вам нужно получить волшебный куки-файл пользователя, вошедшего в систему, и импортировать куки-файл для пользователя, выполняющего команду.Как пользователь, входящий на сервер, который имеет полномочия на отображение
X
, запустите:Тогда как пользователь пытается запустить графический интерфейс:
xauth
слияниеcookie_file
После того, как печенье импортируется в пользователя.
Xauthority
файл, вы должны быть в состоянии выполнить графический интерфейс.источник
Xvfb :1 -ac -screen 0 1024x768x8 &
export DISPLAY=:1
источникЯ столкнулся с подобной проблемой при установке IBM Installation Manager (IBMIM) в CentOS 6.x и обошел эту проблему, установив несколько пакетов, которые были причиной этой идентичной ошибки:
Решение часть 1 - недостающие пакеты
Нечто подобное можно было бы сделать и в Ubuntu.
Решение часть 2 - xauth
Другая проблема, которая может возникнуть, заключается в том, что вы пытаетесь запустить программу установки IBMIM (на основе Eclipse) от имени пользователя root с помощью sudo. Когда вы сделаете это, вы получите вышеуказанную ошибку приложения от установщика:
Чтобы обойти это, вам нужно будет
xauth add
добавить начального пользователя, вошедшего в систему, как$HOME/.Xauthority
файл root .Как пользователь 1:
Тогда как корень:
Ссылки
источник
Если вы работаете в Linux с Gnome:
Начните Gnome с сеанса Xorg:
После нажатия на ваше имя пользователя в GDM (менеджер приветствия / входа в систему), нажмите ваше имя пользователя и, прежде чем вводить пароль, нажмите маленькую шестерню и выберите Gnome with Xorg, затем введите свой пароль
источник
После отключения IPV6 на удаленной машине я получил сообщение
org.eclipse.swt.SWTError: No more handles [gtk_init_check() failed]
при использовании командыssh -X ub-dev /opt/eclipse/eclipse
. Чтобы исправить это в Ubuntu 14.04, я добавил строкуAddressFamily inet
в файл/etc/ssh/sshd_config
и перезапустил sshsudo service ssh restart
.источник