程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了在Java 8中使用LogManager(l4j2)时出错(无法解析java.lang.reflect.AnnotatedElement)大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决在Java 8中使用LogManager(l4j2)时出错(无法解析java.lang.reflect.AnnotatedElement)?

开发过程中遇到在Java 8中使用LogManager(l4j2)时出错(无法解析java.lang.reflect.AnnotatedElement)的问题如何解决?下面主要结合日常开发的经验,给出你关于在Java 8中使用LogManager(l4j2)时出错(无法解析java.lang.reflect.AnnotatedElement)的解决方法建议,希望对你解决在Java 8中使用LogManager(l4j2)时出错(无法解析java.lang.reflect.AnnotatedElement)有所启发或帮助;

当使用JDK 8和带有自己的编译器(如Eclipse)的IDE(或任何其他代码处理工具/框架)时,即使你没有使用Java 8的新功能,也必须将其更新为支持Java 8的版本。 。

原因是编译器必须能够加载JRE的较新的类文件,以便编译引用这些类的软件。

有时,如果你忽略了类文件的较新版本号,则可以使用较旧的编译器。但是,某些类型会混淆旧的类文件分析器,因为它们使用的新功能,特别是AnnotatedElement,现在有default方法,以及Map.Entry,一个interface现在有static方法。

似乎Eclipse在没有找到类文件的引用和说“ 无法解析«classname» ”时无法读取的类文件之间没有区别。

这同样适用于所有使用ECJ作为嵌入式编译器的工具和框架。

解决方法

我将我的新项目的JDK版本从7u45切换到8u20时遇到一个奇怪的错误。在类的开头,无害的LogManager声明被拒绝,并出现以下错误:

无法解析类型java.lang.reflect.AnnotatedElement。从所需的.class文件间接引用它

这是代码:

public class Class1 {   
    private static Logger log = LogManager.getLogger(Class1.class); 
    ...

Eclipse建议我配置构建路径,但是我不知道要配置什么,因为我不知道该错误的根本问题。

使用版本7的JDK,一切正常。

大佬总结

以上是大佬教程为你收集整理的在Java 8中使用LogManager(l4j2)时出错(无法解析java.lang.reflect.AnnotatedElement)全部内容,希望文章能够帮你解决在Java 8中使用LogManager(l4j2)时出错(无法解析java.lang.reflect.AnnotatedElement)所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。