解决Eclipse启动报缺少javax/annotation/PostConstruct的错误

分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow

                       

解决Eclipse启动报缺少javax/annotation/PostConstruct的错误

  • 版权声明:本文为博主chszs的原创文章,未经博主允许不得转载。

我使用的是Mac开发环境,Eclipse使用4.7的Oxygen版。
当我在本机上安装了Java 9后,我发现Eclipse无法启动了。
打开Eclipse的日志文件(我的在这里Users/XXXXX/Documents/eclipsework/.metadata/.log)

可以看到有如下错误输出:

!SESSION 2017-10-08 22:04:45.234 -----------------------------------------------eclipse.buildId=4.7.0.I20170612-0950java.version=9java.vendor=Oracle CorporationBootLoader constants: OS=macosx, ARCH=x86_64, WS=cocoa, NL=zh_CNFramework arguments:  -product org.eclipse.epp.package.jee.product -keyring /Users/liqiang/.eclipse_keyringCommand-line arguments:  -os macosx -ws cocoa -arch x86_64 -product org.eclipse.epp.package.jee.product -keyring /Users/liqiang/.eclipse_keyring!ENTRY org.eclipse.osgi 4 0 2017-10-08 22:04:47.669!MESSAGE Application error!STACK 1org.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.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:151)    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)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)    ... 22 moreCaused by: java.lang.ClassNotFoundException: javax.annotation.PostConstruct 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:496)    ... 24 more
   
   
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46

这个错误是安装了Java 9环境后导致的,即使卸载了Java 9,回退到Java 8,仍然有这个问题。

要解决这个问题并不难,打开Finder,选择“应用程序”,找到Eclipse,鼠标右键点击图标,选择“显示包内容”,打开“Contents”–>“Eclipse”,找到文件“eclipse.ini”
编辑这个文件,在末尾加上一句:

--add-modules=ALL-SYSTEM
   
   
  • 1

保存,并退出Finder,重启Eclipse即可恢复正常。

           

分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow

猜你喜欢

转载自blog.csdn.net/hffyyg/article/details/87889113