Freemarker版eclipse解压后启动的报错文件,请问怎么办?

Freemarker版eclipse解压后启动的报错文件,请问怎么办?

我解压zip文件后直接运行了eclipse.exe文件,设置了工作空间后提示error,提示的文件如下

!SESSION 2020-09-05 13:45:08.434 -----------------------------------------------
eclipse.buildId=4.7.0.I20170612-0950
java.version=12.0.2
java.vendor=Oracle Corporation
BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=zh_CN
Framework arguments:  -product org.eclipse.epp.package.jee.product
Command-line arguments:  -os win32 -ws win32 -arch x86_64 -product org.eclipse.epp.package.jee.product

!ENTRY org.eclipse.osgi 4 0 2020-09-05 13:45:30.550
!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.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:567)
    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 more
Caused 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:521)
    ... 24 more

!ENTRY org.eclipse.e4.ui.workbench 4 0 2020-09-05 13:45:30.614
!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:835)
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

正在回答

登陆购买课程后可参与讨论,去登陆

9回答

同学你好,项目中@WebServlet和String类型报错,同学可以检查一下项目中jdk和Tomcat配置。步骤如下:

a. 项目右击选择properties,如下:

http://img1.sycdn.imooc.com//climg/5f575a340940fe2c04430702.jpg

b. 选择java build path->libraries,如下:

http://img1.sycdn.imooc.com//climg/5f575a5a097208ef07540262.jpg

c. 选择JRE System Library,点击Edit,选择自己的jdk,如下:

http://img1.sycdn.imooc.com//climg/5f575b3009e6216613850937.jpg

d. 选择自己的Tomcat,如下:

http://img1.sycdn.imooc.com//climg/5f575b7c0965a75309360742.jpg

如果问题没有解决,同学可以在Servers删除Tomcat,如下:

http://img1.sycdn.imooc.com//climg/5f575bc109531d2905850360.jpg

再重新添加Tomcat。

建议同学不要使用汉化版的Eclipse,服务器不要使用中文,应该是英文,如下:

http://img1.sycdn.imooc.com//climg/5f575c2509a161d502100057.jpg

祝学习愉快~

  • notFoundMoneyE 提问者 #1
    我的tomcat是8.5的,重新添加就不添加了,不折腾了,谢谢老师
    2020-09-08 21:32:51
notFoundMoneyE 提问者 2020-09-08 16:02:12

基本是servlet类型的错误,我是不是少了插件或没有引入什么0.0?http://img1.sycdn.imooc.com//climg/5f573a17095bfb8118350950.jpg

http://img1.sycdn.imooc.com//climg/5f573a170917b96e16720860.jpg

http://img1.sycdn.imooc.com//climg/5f573a1709775cfb18310918.jpg


好帮手慕阿慧 2020-09-08 15:08:55

同学你好,重装jdk和Eclipse不会影响原来的项目。原来写的项目可以修改dk版本。

以test01项目为例,修改jdk版本如下:

a. 项目右击选择properties,如下:

http://img1.sycdn.imooc.com//climg/5f572d6809e9ec7b04550660.jpg

b. 选择java build path->library,选中jdk,点击Edit。选择Alternate JRE,选择自己的jdk。如下:

http://img1.sycdn.imooc.com//climg/5f572d6909ddf43009330777.jpg

祝学习愉快~

  • 提问者 notFoundMoneyE #1
    阿慕老师你好,我修改项目依赖的jdk后还是报错了,详细见本问题下新的回答
    2020-09-08 15:59:52
好帮手慕阿慧 2020-09-08 13:52:52

同学你好,建议同学重装jdk和Eclipse。jdk安装一个版本就可以了,如果安装多个版本可能会出现错误,建议同学安装jdk1.8版本,与老师的尽量保持一致哦。同学可以按照之前课程进行安装https://class.imooc.com/lesson/1330#mid=31177

安装并配置完jdk后,同学可以下载教辅中提供的Eclipse。如下:

http://img1.sycdn.imooc.com//climg/5f571c2c09d55a2a02880179.jpg

祝学习愉快~

  • 提问者 notFoundMoneyE #1
    那我原来学习所写的项目呢,用的12.0,就不能兼容了?
    2020-09-08 14:21:29
好帮手慕阿满 2020-09-06 14:15:35

同学你好,没有导入tomcat是报错的一个原因,建议同学配置tomcat再试试。

另外eclipse中项目是之前的,使用的jdk版本和当前eclipse中的jdk版本一致会造成报错,建议同学修改一下项目使用的eclipse版本。在报错的项目名上点击右键,选择Properties,出现如下界面,修改jdk版本再试试

http://img1.sycdn.imooc.com//climg/5f547e6609b4719b07260759.jpg

祝:学习愉快~

  • 提问者 notFoundMoneyE #1
    server里我添加了tomcat,但添加新的jdk怎么添加,这几个报错的项目都是用的12.0.2,而不是1.8,上图那个下拉框我只能选1.3到1.8之间
    2020-09-06 16:25:47
  • 好帮手慕阿满 回复 提问者 notFoundMoneyE #2
    同学你好,这是正常的。这里是要同学将项目都使用jdk1.8版本,和eclipse使用jdk版本保持一致才不会报错。祝:学习愉快~
    2020-09-06 16:50:26
  • 提问者 notFoundMoneyE 回复 好帮手慕阿满 #3
    项目都是jdk12.0.2编写的,eclipse是1.8的,修改哪一个?
    2020-09-07 13:44:19
notFoundMoneyE 提问者 2020-09-06 09:56:22
是这个新的eclipse没配置tomcat吗

http://img1.sycdn.imooc.com//climg/5f5441a9096df36018220923.jpg

http://img1.sycdn.imooc.com//climg/5f5441a9091e958d13520469.jpg


好帮手慕阿园 2020-09-05 18:52:07

同学你好

1,还是建议同学将jdk换成1.8的试试,因为eclispe对jdk版本有适配问题,所以建议同学更改后试试

可参考如下链接及教辅

http://class.imooc.com/lesson/1330#mid=31178

 http://img1.sycdn.imooc.com//climg/5f536da4093f2d6c03870328.jpg

2,本章的作业中没有涉及到Freemarker的使用,但是三阶段后面的一个项目中整合了Freemarker

祝学习愉快

  • 提问者 notFoundMoneyE #1
    谢谢老师,我把jdk换成1.8后成功运行了Freemarker版的eclipse,并且新建ftl文件也没有报错。另外当时在window按钮下面网址下载Freemarker IDE需要重启eclipse,但我没有,可能重启了就能运行,没这么麻烦了。最后我把之前eclipse的工作空间内工程移植带到这个新eclipse里面,结果全都报错了,怎么搞,图片见我在该问题下另一个回答
    2020-09-06 09:51:51
好帮手慕阿园 2020-09-05 17:46:02

同学你好,同学解决了吗,建议同学将jdk换成1.8的试试

祝学习愉快


  • 提问者 notFoundMoneyE #1
    我的是jdk-12.0.2,版本上应该没有问题,后来我把另外的eclipse文件删除了,保留了工作空间,重启并安装imooc提供的freemarker版的eclipse,但没有用,依然报了那个错误
    2020-09-05 18:07:27
  • 提问者 notFoundMoneyE #2
    我之前还试了在eclipse菜单栏中window下面用网页链接下载安装freemarker.ide的方法,还是没用,报的错都似乎是一样的,空指针引起的
    2020-09-05 18:09:59
  • 提问者 notFoundMoneyE #3
    折腾一下午了。我跳过这一节会有影响吗,只看视频,后面的大作业会用到Freemarker吗
    2020-09-05 18:11:21
好帮手慕阿园 2020-09-05 15:38:47

同学你好,同学从这几方面去排查

1,同学使用的jdk8以上的版本吗,如果是,建议同学换成jdk8后试试

2,如果同学使用的jdk8,同学去报错的eclispe中,将 [workspace]/.metadata/.plugins/org.eclipse.e4.workbench/workbench.xmi该文件删除后试试,workspace是自己设定的工作目录

http://img1.sycdn.imooc.com//climg/5f53403409da3d3007540191.jpg

3,同学可以尝试将eclispe重新指定一个workspace工作空间

4,如果还不可以,建议同学将电脑上所有下载的eclispe卸载后重启电脑再重新下载资料中的eclispe试试

祝学习愉快

  • 提问者 notFoundMoneyE #1
    我的是8以上的版本,xml文件找不到,新的工作空间试了也没用,我在试试最后第四个方法
    2020-09-05 16:43:44
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师