私は最近ubuntu16.04(このバージョンに自動的に更新されます)をインストールしました。通常はJavaで開発し、Eclipseを知っているので、すべて問題なくインストールしました。
必要なものすべて(Javaパス、JDK ...特別なものはありません)を構成しましたが、EclipseUIを除いて正常に動作します。
プロジェクトを作成するたびに(プロジェクトは正しく作成されますが)、プログラムを実行するたびに(プログラムは正常に実行されますが(常に正しくxDとは限りませんが、それは私のせいです))、その他の多くのタスクでUIがフリーズします。 。
なぜこれが起こり得るのか考えはありますか?そしてさらに良いことに、それを解決する方法は?
また、使用しているJREを再確認し(オープンソースソフトウェアに問題がある人を見つけたため)、Oracleのバージョンを使用しています(名前がわからない、申し訳ありませんが、バージョン8)。その64ビットバージョンのすべて。
編集:私は火星バージョンを使用していることを言及するのを忘れました。また、NetBeans(8.1)をインストールしたばかりで、まったく同じ問題が発生しました。グラフィックドライバの問題だと思いましたが、再度インストールしても同じ問題が発生します。今何を試すべきかわからない。
PDATE:ログファイルを確認しました。奇妙なことは何も見えませんが、何かが足りない可能性があります。
!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.
PDATE 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
私はすでに問題を見つけました。 ZoltánとDanが指摘したように、GTKが問題でした。
解決策:(Eclipseでのみテスト済み):
これで問題は解決しました。
Linux上のEclipseUIは、デフォルトでGTK 3を使用してコンテンツを表示しますが、問題が頻繁に発生することがわかりました。これが問題の原因であるかどうかは正確にはわかりませんが、環境変数設定を使用してGTK3サポートを無効にすることで確認できます。export SWT_GTK3=0
。ただし、これが問題の原因であることがわかるまで、永続的にオンにすることはありません。
次のように、EclipseプロセスのJavaスレッドダンプを生成する必要があります。
プロセスIDを確立します。
jps -lv
Eclipseインスタンスを表す行を識別し、行の最初の番号であるプロセスIDを覚えておいてください。
プロセスIDを使用して、スレッドダンプをトリガーします。
jstack -l process_id > jstack.out
このようにして、その時点でそのJVM
で稼働している各スレッドのスタックトレースを取得します。ここから、プログラムが実行されていない理由を特定できるはずです。
オープン https://bugs.Eclipse.org/bugs/show_bug.cgi?id=492829 これをSWT/GTK3インタラクションのバグの可能性として追跡します。
この問題は、以前のバージョンのEclipseで発生すると思います。 JavaとJ2eeの両方でEclipseMarsを試してみました。Neonバージョンをチェックインしました。この問題は発生していません。Eclipseがフリーズしていません。