【问题标题】:Eclipse will not run correctly and stops suddenlyEclipse 无法正常运行并突然停止
【发布时间】:2021-01-08 22:01:24
【问题描述】:

最近,我安装了一个名为 Afra (https://rebeca-lang.org/alltools/Afra) 的应用程序,它似乎是基于 Eclipse 开发的。当我要运行时,它不会启动,并且日志文件中会出现以下错误:

(更多信息,我使用的是64位版本的windows 10 plus java 10)

!SESSION 2020-09-22 21:29:21.395 -----------------------------------------------
eclipse.buildId=unknown
java.version=10.0.2
java.vendor=Oracle Corporation
BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=en_US
Framework arguments:  -clearPersistedState
Command-line arguments:  -os win32 -ws win32 -arch x86_64 -clearPersistedState

!ENTRY org.eclipse.osgi 4 0 2020-09-22 21:29:22.797
!MESSAGE Application error
!STACK 1
org.eclipse.e4.core.di.InjectionException: java.lang.NoClassDefFoundError: javax/annotation/PostConstruct
    at org.eclipse.e4.core.internal.di.InjectorImpl.internalMake(InjectorImpl.java:410)
    at org.eclipse.e4.core.internal.di.InjectorImpl.make(InjectorImpl.java:318)
    at org.eclipse.e4.core.contexts.ContextInjectionFactory.make(ContextInjectionFactory.java:162)
    at org.eclipse.e4.ui.internal.workbench.swt.E4Application.createDefaultHeadlessContext(E4Application.java:491)
    at org.eclipse.e4.ui.internal.workbench.swt.E4Application.createDefaultContext(E4Application.java:505)
    at org.eclipse.e4.ui.internal.workbench.swt.E4Application.createE4Workbench(E4Application.java:204)
    at org.eclipse.ui.internal.Workbench.lambda$3(Workbench.java:614)
    at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:336)
    at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:594)
    at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:148)
    at org.rebecalang.afra.ideplugin.Application.start(Application.java:20)
    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(Unknown Source)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.base/java.lang.reflect.Method.invoke(Unknown Source)
    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)
    at org.eclipse.equinox.launcher.Main.main(Main.java:1472)
Caused by: java.lang.NoClassDefFoundError: javax/annotation/PostConstruct
    at org.eclipse.e4.core.internal.di.InjectorImpl.inject(InjectorImpl.java:124)
    at org.eclipse.e4.core.internal.di.InjectorImpl.internalMake(InjectorImpl.java:399)
    ... 23 more

【问题讨论】:

  • 看起来该应用程序是使用 Eclipse 版本构建的,该版本太旧而无法使用 Java 10 运行。您需要使用 Java 8。
  • 相关(可能重复):stackoverflow.com/questions/52701459/…
  • 这些 JavaEE 功能自 Java 9 以来已被弃用。尽管它们应该仍然存在于 Java 10 中,因为它们已在 Java 11 中被删除。
  • greg-449 怎么说。作为解决方案你可以download this ZIP file,在Afra安装目录下创建子文件夹jre,然后解压ZIP到里面,这样<Afra-installation-dir>\jre\bin\java.exe就存在了。
  • @howlger 非常感谢。你的解决方案对我有用。 :))

标签: java eclipse


【解决方案1】:

这看起来很像 Afra 基于较旧的 Eclipse 平台,并且是由于使用 Java 10 而不是 Java 8 来运行它造成的。

您可以执行以下操作之一:

  • 将 Java 8(64 位)添加到 Afra 安装,例如通过download this ZIP file,在Afra安装目录下创建子文件夹jre,解压ZIP到里面,这样<Afra-installation-dir>\jre\bin\java.exe就存在了
  • 在您的系统中安装 Java 8(64 位)并确保 Afra 与它一起运行,例如通过从例如下载 Java 8(64 位)JDK 或 JRE。 AdoptOpenJDK.net,安装它,如果它不用于运行 Afra,edit the *.ini file of Afra

【讨论】:

    猜你喜欢
    • 2010-10-11
    • 2016-07-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-11
    • 2014-04-20
    • 2022-01-20
    • 2019-11-03
    相关资源
    最近更新 更多