我正在将Web应用程序迁移到Java 8.我可以在Eclipse之外构建项目而没有任何问题,但我在ide中看到了奇怪的错误。首先,应用程序中使用的一些项目(25个中的4个)显示的错误没有任何意义。对于实现集合接口的任何对象,我看到一个错误,说“类型X不是通用的;它不能用参数< sometype>”进行参数化。例如,
这是一个java.util.collection。我也为死亡类型得到了同样的错误....例如.. map,tree,ArrayList ......等等。
此外,当我执行项目 - > clean时,Eclipse会在构建这些项目时抛出StackOverflow错误。这是日志中的跟踪:
!ENTRY org.eclipse.core.jobs 4 2 2015-12-09 15:50:54.309
!MESSAGE An internal error occurred during: "Build Project".
!STACK 0
java.lang.StackOverflowError
at org.eclipse.jdt.internal.compiler.lookup.ParameterizedTypeBinding.substituteInferenceVariable(ParameterizedTypeBinding.java:856)
at org.eclipse.jdt.internal.compiler.lookup.ParameterizedTypeBinding.substituteInferenceVariable(ParameterizedTypeBinding.java:856)
at org.eclipse.jdt.internal.compiler.lookup.ParameterizedTypeBinding.substituteInferenceVariable(ParameterizedTypeBinding.java:856)
at org.eclipse.jdt.internal.compiler.lookup.ParameterizedTypeBinding.substituteInferenceVariable(ParameterizedTypeBinding.java:856)
at org.eclipse.jdt.internal.compiler.lookup.ParameterizedTypeBinding.substituteInferenceVariable(ParameterizedTypeBinding.java:856)
at org.eclipse.jdt.internal.compiler.lookup.ParameterizedTypeBinding.substituteInferenceVariable(ParameterizedTypeBinding.java:856)
at org.eclipse.jdt.internal.compiler.lookup.ParameterizedTypeBinding.substituteInferenceVariable(ParameterizedTypeBinding.java:856)
。 。 。 重复
我在两个不同的Eclipse环境中看到了这些错误。 STS 3.6.2和火星4.5.1。任何人都知道这里发生了什么?
答案 0 :(得分:0)
在有问题的项目上,听起来他们配置了旧的JRE系统库和我们的合规级别,而不是Java 8.打开项目属性,转到Java Build路径,并检查JRE系统库的设置至;它应该是J2SE-1.8。