java - 我的 Eclipse 崩溃了,现在它无法启动 java.lang.NoClassDefFoundError: javax/annotation/PreDestroy
问题描述
我正在研究 Java-oxygen eclipse 4.7.3 版,突然它冻结然后崩溃了。当我尝试再次启动它时,我收到一个错误窗口,提示“发生错误,请参阅日志文件 D:\workspace.metadata.log。”
当我检查该文件时,我发现了这个条目:
!MESSAGE FrameworkEvent ERROR
!STACK 0
java.lang.NoClassDefFoundError: javax/annotation/PreDestroy
at org.eclipse.e4.core.internal.di.InjectorImpl.disposed(InjectorImpl.java:450)
at org.eclipse.e4.core.internal.di.Requestor.disposed(Requestor.java:156)
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:178)
at org.eclipse.e4.core.internal.contexts.osgi.EclipseContextOSGi.dispose(EclipseContextOSGi.java:99)
at org.eclipse.e4.core.internal.contexts.osgi.EclipseContextOSGi.bundleChanged(EclipseContextOSGi.java:141)
at org.eclipse.osgi.internal.framework.BundleContextImpl.dispatchEvent(BundleContextImpl.java:908)
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:168)
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:834)
Caused by: java.lang.ClassNotFoundException: javax.annotation.PreDestroy cannot be found by org.eclipse.e4.core.di_1.6.100.v20170421-1418
at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:433)
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:395)
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:387)
at org.eclipse.osgi.internal.loader.ModuleClassLoader.loadClass(ModuleClassLoader.java:150)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
... 21 more```
I tried changing the workspace in the eclipse settings file "org.eclipse.ui.ide.prefs" but it just wrote the same error in the log file of the new workspace.
I guess this error has something with eclipse not shutting down correctly but I don't know how to fix it
解决方案
试试下面的提示,看看它是否有效
- 右键单击您的项目刷新
- 通常是打包工具错误导致的,你可能需要添加依赖项。此 链接可能会有所帮助。
- 如果您正在处理 Maven 项目,请右键单击您的项目 > Maven > 更新项目 - 这将更新您项目的必要依赖项
- 尝试考虑重新安装 Eclipse。如果您使用的是 Windows - 卸载,重新启动系统并从此处重新安装 Eclipse IDE
推荐阅读
- ms-word - 使用 OfficeJS API 加载 base64 编码的 .docx 文件时无法加载页眉和页脚
- javascript - 跨域:子窗口关闭时刷新父窗口
- eclipse - 如何在 Eclipse 2018-12 上创建或查看 sql 文件
- postgresql - 如果选择查询返回行,如何引发错误
- ssis - 在 SSIS 中使用 OLE DB 从 Sybase 提取数据时出错
- unity3d - unity Vector3.Dot 返回值错误
- python - AWS Elastic Beanstalk 504 网关超时期间会发生什么
- c# - 在构造函数中注册具有额外值参数的装饰器
- three.js - threejs/raycaster 将看不到我需要的对象
- javascript - 在页面中多次重用 jQuery 的 getJSON