Eclipse Oxygen无法运行 - org.eclipse.swt.SWTException:无效的线程访问

时间:2017-12-18 16:05:01

标签: java-9 bndtools eclipse-oxygen

我有以下问题:我的日食氧气无法运行(错误附加)。 当我在下载后运行它(在9月1日和12月2日测试)时,一切都很好。但是,当我重新启动计算机时,eclipse不会再次启动,除非我重新安装它。 我已经清除了eclipse缓存和我的项目一样(甚至从repo获取了新版本),工作区和eclipse安装位置也很新鲜。 我读过例如https://bugs.eclipse.org/bugs/show_bug.cgi?id=475392https://bugs.eclipse.org/bugs/show_bug.cgi?id=514895和其他相关帖子虽然没有帮助。 任何的想法?我正在使用Windows 10 64位和JDK 9.0.1 + 11。我唯一的插件是BndTools 3.5,最新的,项目需要java 8(当前运行时jdk是152)。 在运行我的项目并在同一时间解决示例bnd项目(http://enroute.osgi.org/tutorial_base/600-testing.html)中的依赖关系后的15月12日星期五开始出现问题。之后无法运行日食。 但是,我以前做过,并没有遇到任何问题(我的意思是打开示例并运行它)。另外,我已经清除了p2,mvn和bnd缓存。

下面提到的来自eclipse .log的堆栈:

!SESSION 2017-12-18 16:47:57.660 -----------------------------------------------
eclipse.buildId=4.7.2.M20171123-0800
java.version=9.0.1
java.vendor=Oracle Corporation
BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=pl_PL
Framework arguments:  -product org.eclipse.epp.package.java.product
Command-line arguments:  -os win32 -ws win32 -arch x86_64 -product org.eclipse.epp.package.java.product

!ENTRY org.eclipse.osgi 4 0 2017-12-18 16:47:59.711
!MESSAGE Application error
!STACK 1
org.eclipse.swt.SWTException: Invalid thread access
    at org.eclipse.swt.SWT.error(SWT.java:4533)
    at org.eclipse.swt.SWT.error(SWT.java:4448)
    at org.eclipse.swt.SWT.error(SWT.java:4419)
    at org.eclipse.swt.widgets.Display.error(Display.java:1263)
    at org.eclipse.swt.widgets.Display.checkDevice(Display.java:767)
    at org.eclipse.swt.widgets.Display.addListener(Display.java:628)
    at org.eclipse.ui.internal.ide.application.IDEWorkbenchAdvisor.<init>(IDEWorkbenchAdvisor.java:187)
    at org.eclipse.ui.internal.ide.application.IDEWorkbenchAdvisor.<init>(IDEWorkbenchAdvisor.java:195)
    at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:152)
    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:388)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:243)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:564)
    at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:653)
    at org.eclipse.equinox.launcher.Main.basicRun(Main.java:590)
    at org.eclipse.equinox.launcher.Main.run(Main.java:1499)

Diff between fresh and dirty instalation

<小时/>

更新

冲洗整个系统后,问题已经过去一段时间了,但是又回来了,所以它在我看来消除了操作系统的影响。 在Struarf mentioned in his answer时,删除configuration/org.eclipse.osgi templorary 可以解决问题。 然而,当我安装了氧气2时,我注意到这个问题比以前更加罕见(实际上现在是第2次,持续2周,无论是在每次可能的场合之前),所以也许它有一个很好的方式... < / p>

2 个答案:

答案 0 :(得分:5)

我刚刚对bug 477247发表了评论。我得到了一个类似的异常(在OSX上)。允许我在不重新安装的情况下启动Eclipse的原因是删除configuration / org.eclipse.osgi文件夹。它看起来像一个捆绑缓存,删除这样的缓存已经在我的其他地方工作。希望这也可能为开发者提供线索。

答案 1 :(得分:0)

你似乎点击了bug 477247。到目前为止,Eclipse开发人员无法重现该问题,也许您可​​以通过添加重现错误的步骤或任何其他有用的细节来帮助他们。