Подтвердить что ты не робот

Eclipse зависает от UI на Ubuntu

Недавно я установил ubuntu 16.04 (обновлен автоматически до этой версии), и я обычно разрабатываю Java, и я знаю eclipse, поэтому я установил его, все отлично.

Я настроил все необходимое (путь Java, JDK... ничего особенного), отлично работает, за исключением интерфейса Eclipse.

Пользовательский интерфейс зависает каждый раз, когда я создаю проект (хотя проект создан правильно), каждый раз, когда я запускаю какую-либо программу (хотя программа работает так, как должна (не всегда правильно xD, но это моя ошибка)), и с многие другие задачи.

Любая идея, почему это может случиться? И еще лучше, как его решить?

Я также дважды проверил, какой JRE я использую (поскольку у меня были проблемы с программным обеспечением с открытым исходным кодом), я использую версию oracle'а (не уверен, что имя сейчас, извините, версия 8). Все на 64-битной версии.

Изменить: я забыл упомянуть, что использую версию Mars. Кроме того, я только что установил NetBeans (8.1), точно такую ​​же проблему, тогда я подумал, что это проблемы с графическими драйверами, которые снова установлены, все еще имеют одинаковую проблему. Не знаю, что сейчас попробовать.

UPDATE: Проверенный файл журнала. Я не вижу ничего странного, но может что-то упустить:

!SESSION 2015-12-04 13:24:38.930     -----------------------------------------------
 eclipse.buildId=4.5.1.M20150904-0015
 java.version=1.8.0_66
 java.vendor=Oracle Corporation
 BootLoader constants: OS=linux, ARCH=x86_64, WS=gtk, NL=es_ES
 Command-line arguments:  -os linux -ws gtk -arch x86_64

 !ENTRY org.eclipse.core.resources 2 10035 2015-12-04 13:24:40.542
 !MESSAGE The workspace exited with unsaved changes in the previous session; refreshing workspace to recover changes.

ОБНОВЛЕНИЕ 2: Я просто запускаю команды @dan. Вот результат

 "main" #1 prio=6 os_prio=0 tid=0x00007f0ec000a000 nid=0x26e0 runnable [0x00007f0ec9a18000]
   java.lang.Thread.State: RUNNABLE
    at org.eclipse.swt.internal.gtk.OS._gtk_widget_get_allocation(Native Method)
    at org.eclipse.swt.internal.gtk.OS.gtk_widget_get_allocation(OS.java:14234)
    at org.eclipse.swt.widgets.Control.getBounds(Control.java:832)
    at org.eclipse.jface.fieldassist.ControlDecoration.getDecorationRectangle(ControlDecoration.java:1185)
    at org.eclipse.jface.fieldassist.ControlDecoration$3.paintControl(ControlDecoration.java:635)
    at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:230)
    at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
    at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4481)
    at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1329)
    at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1353)
    at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1338)
    at org.eclipse.swt.widgets.Control.gtk_draw(Control.java:3219)
    at org.eclipse.swt.widgets.Canvas.gtk_draw(Canvas.java:171)
    at org.eclipse.swt.widgets.Shell.gtk_draw(Shell.java:1306)
    at org.eclipse.swt.widgets.Widget.windowProc(Widget.java:1942)
    at org.eclipse.swt.widgets.Control.windowProc(Control.java:5590)
    at org.eclipse.swt.widgets.Display.windowProc(Display.java:4717)
    at org.eclipse.swt.internal.gtk.OS._gtk_main_do_event(Native Method)
    at org.eclipse.swt.internal.gtk.OS.gtk_main_do_event(OS.java:9279)
    at org.eclipse.swt.widgets.Display.eventProc(Display.java:1225)
    at org.eclipse.swt.internal.gtk.OS._g_main_context_iteration(Native Method)
    at org.eclipse.swt.internal.gtk.OS.g_main_context_iteration(OS.java:2425)
    at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3428)
    at org.eclipse.jface.operation.ModalContext$ModalContextThread.block(ModalContext.java:172)
    at org.eclipse.jface.operation.ModalContext.run(ModalContext.java:387)
    at org.eclipse.jface.wizard.WizardDialog.run(WizardDialog.java:1002)
    at org.eclipse.jdt.internal.ui.wizards.NewElementWizard.performFinish(NewElementWizard.java:134)
    at org.eclipse.jdt.internal.ui.wizards.NewClassCreationWizard.performFinish(NewClassCreationWizard.java:80)
    at org.eclipse.jface.wizard.WizardDialog.finishPressed(WizardDialog.java:799)
    at org.eclipse.jface.wizard.WizardDialog.buttonPressed(WizardDialog.java:429)
    at org.eclipse.jface.dialogs.Dialog$2.widgetSelected(Dialog.java:619)
    at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:248)
    at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
    at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4481)
    at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1329)
    at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3819)
    at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3430)
    at org.eclipse.jface.window.Window.runEventLoop(Window.java:827)
    at org.eclipse.jface.window.Window.open(Window.java:803)
    at org.eclipse.ui.internal.navigator.wizards.WizardShortcutAction.run(WizardShortcutAction.java:99)
    at org.eclipse.jface.action.Action.runWithEvent(Action.java:473)
    at org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:595)
    at org.eclipse.jface.action.ActionContributionItem.access$2(ActionContributionItem.java:511)
    at org.eclipse.jface.action.ActionContributionItem$5.handleEvent(ActionContributionItem.java:420)
    at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
    at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4481)
    at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1329)
    at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3819)
    at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3430)
    at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$4.run(PartRenderingEngine.java:1127)
    at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:337)
    at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1018)
    at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:156)
    at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:654)
    at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:337)
    at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:598)
    at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:150)
    at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:139)
    at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:380)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:235)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:497)
    at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:669)
    at org.eclipse.equinox.launcher.Main.basicRun(Main.java:608)
    at org.eclipse.equinox.launcher.Main.run(Main.java:1515)
    at org.eclipse.equinox.launcher.Main.main(Main.java:1488)

   Locked ownable synchronizers:
    - None
4b9b3361

Ответ 1

Я уже нашел проблему. Как отметил Золтан и Дэн, GTK была проблемой.

Решение: (проверено только на Eclipse):

  • Перейдите в окно > Настройки > Общие > Внешний вид.
  • Измените тему "GTK" для любой другой темы, которая вам нравится.

Это устранило проблему для меня.

Ответ 2

Пользовательский интерфейс Eclipse по Linux по умолчанию использует GTK 3 для отображения содержимого, но я обнаружил, что часто возникают проблемы. Я не совсем уверен, является ли это источником проблемы, но вы можете проверить его, отключив поддержку GTK 3, используя параметр переменной среды: export SWT_GTK3=0. Однако, пока вы не узнаете, это источник проблемы, я бы не включил ее постоянно.

Ответ 3

Вы должны создать дамп потока java процесса eclipse, например:

  • Установите идентификатор процесса:

    jps -lv
    

    Определите строку, представляющую экземпляр eclipse, и запомните первый номер в строке, идентификатор процесса.

  • Запустите дамп потока, используя идентификатор процесса:

    jstack -l process_id > jstack.out
    

Таким образом вы получите трассировку стека для каждого потока, который жив в этом JVM в этот момент. Отсюда вы сможете определить, почему ваша программа не работает.

Ответ 5

Я думаю, что эта проблема возникает с более ранней версией Eclipse. Я попытался использовать Eclipse Mars для Java и J2ee. Я проверил версию Neon; эта проблема не возникает. Eclipse не замерзает.