【问题标题】:Eclipse Neon will not runEclipse Neon 不会运行
【发布时间】:2019-11-09 18:28:04
【问题描述】:

我单击 eclipse.exe,然后出现一个框,显示“发生错误:请参阅日志文件 C:\Users\sam\workspace\.metadata\.log”。我搜索了这条错误消息,发现很多人有同样的问题(包括thisthisthis,还有很多其他人),但是任何答案中的解决方案都没有对我有用,甚至没有错误消息中的更改。然后我在日志文件中搜索了具体的错误,即:

!ENTRY org.eclipse.e4.ui.workbench 4 0 2019-06-27 12:56:35.009
!MESSAGE FrameworkEvent ERROR
!STACK 0
java.lang.NoClassDefFoundError: javax/annotation/PreDestroy
    at org.eclipse.e4.core.internal.di.InjectorImpl.disposed(InjectorImpl.java:426)
    at org.eclipse.e4.core.internal.di.Requestor.disposed(Requestor.java:154)
    at org.eclipse.e4.core.internal.contexts.ContextObjectSupplier$ContextInjectionListener.update(ContextObjectSupplier.java:78)
    at org.eclipse.e4.core.internal.contexts.TrackableComputationExt.update(TrackableComputationExt.java:111)
    at org.eclipse.e4.core.internal.contexts.TrackableComputationExt.handleInvalid(TrackableComputationExt.java:74)
    at org.eclipse.e4.core.internal.contexts.EclipseContext.dispose(EclipseContext.java:176)
    at org.eclipse.e4.core.internal.contexts.osgi.EclipseContextOSGi.dispose(EclipseContextOSGi.java:106)
    at org.eclipse.e4.core.internal.contexts.osgi.EclipseContextOSGi.bundleChanged(EclipseContextOSGi.java:139)
    at org.eclipse.osgi.internal.framework.BundleContextImpl.dispatchEvent(BundleContextImpl.java:903)
    at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230)
    at org.eclipse.osgi.framework.eventmgr.ListenerQueue.dispatchEventSynchronous(ListenerQueue.java:148)
    at org.eclipse.osgi.internal.framework.EquinoxEventPublisher.publishBundleEventPrivileged(EquinoxEventPublisher.java:213)
    at org.eclipse.osgi.internal.framework.EquinoxEventPublisher.publishBundleEvent(EquinoxEventPublisher.java:120)
    at org.eclipse.osgi.internal.framework.EquinoxEventPublisher.publishBundleEvent(EquinoxEventPublisher.java:112)
    at org.eclipse.osgi.internal.framework.EquinoxContainerAdaptor.publishModuleEvent(EquinoxContainerAdaptor.java:156)
    at org.eclipse.osgi.container.Module.publishEvent(Module.java:476)
    at org.eclipse.osgi.container.Module.doStop(Module.java:634)
    at org.eclipse.osgi.container.Module.stop(Module.java:498)
    at org.eclipse.osgi.container.SystemModule.stop(SystemModule.java:202)
    at org.eclipse.osgi.internal.framework.EquinoxBundle$SystemBundle$EquinoxSystemModule$1.run(EquinoxBundle.java:165)
    at java.base/java.lang.Thread.run(Thread.java:844)
Caused by: java.lang.ClassNotFoundException: javax.annotation.PreDestroy cannot be found by org.eclipse.e4.core.di_1.6.1.v20160712-0927
    at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:410)
    at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:372)
    at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:364)
    at org.eclipse.osgi.internal.loader.ModuleClassLoader.loadClass(ModuleClassLoader.java:161)
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:499)
    ... 21 more

发现了其他一些不起作用的东西。

以下是我尝试过的一些事情:

  • 删除并重新安装 Eclipse
  • 转到命令行并使用eclipse.exe -cleaneclipse.exe -clean --launcher.ini (path to eclipse.ini)eclipse.exe -clean --clearPersistedState 运行eclipse - 没有改变结果
  • 删除整个 .metadata 文件夹、整个工作区文件夹以及 .plugins 文件夹的内容。
  • 以各种方式更改 eclipse.ini 文件,包括将.clean 放在顶部,将-vmargs 替换为-vmjavaw.exe 的路径。没有任何效果,甚至没有改变任何东西
  • 以管理员身份运行 Eclipse(即我很绝望)

我有 Windows 10 64 位,Eclipse Neon 3 64 位,Java 在我的 PATH 中,这就是我输入 java -version 时出现的内容:

java version "10.0.2" 2018-07-17
Java(TM) SE Runtime Environment 18.3 (build 10.0.2+13)
Java HotSpot(TM) 64-Bit Server VM 18.3 (build 10.0.2+13, mixed mode)

我在 SO 上问这个问题时犹豫不决,但我认为自上次问到这个问题后的时间里可能发生了一些变化。这些解决方案都不适合我,目前我别无选择。

【问题讨论】:

  • Eclipse Neon 太旧,无法使用 Java 10 运行。使用当前的 Eclipse 2019-06 或返回到 Java 8。

标签: java eclipse eclipse-neon


【解决方案1】:

正如 greg-449 在评论中提到的,您不能将 Java 10 与 Neon 一起使用。

在 eclipse wiki 上有一个 compatibility chart,它指定给定版本的 eclipse 需要哪些 Java 版本。

您会注意到,在 Eclipse 4.6 (Neon) 的条目中,它指定 “需要 Java 8 JRE/JDK...” 而不是版本 4.7 和更高,需要“Java 8 或更新的 JRE/JDK...”

Install a JVM 部分进一步阐明了这一点,其中有一个警告

如果使用 Java 9 或更新版本,请使用 Eclipse 4.7.1a 或更新版本,因为它包含 Eclipse 启动器中的修复以添加所有 JVM 模块。

【讨论】:

  • 非常感谢!我有一段时间没有使用 eclipse(我使用的是 Android Studio),从那以后我更新了我的 Java 版本,以便解释它。这让我想知道为什么他们不会把它放在错误消息中的任何地方......
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-09-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-03-09
相关资源
最近更新 更多