解决异常java: java.lang.NoSuchFieldError: Class com.sun.tools.javac.tree.JCTree$JCImport does not have m

m0_74172484 2024-10-18 11:35:02 阅读 80

解决异常java: java.lang.NoSuchFieldError: Class com.sun.tools.javac.tree.JCTree$JCImport does not have member field 'com.sun.tools.javac.tree.JCTree qualid'

java.lang.NoSuchFieldError 表示你在运行时尝试访问的类字段在类的实际定义中不存在。这可能是由于以下原因:

版本不匹配:你可能正在使用的com.sun.tools.javac.tree.JCTree$JCImport类的版本与你的编译器或JDK版本不兼容。例如,如果你的代码依赖于一个特定版本的Javac API,但在不同的环境中使用了不同版本的Javac。

内部API更改:Javac的内部实现可能会在不同版本之间发生变化,包括字段名、方法签名等。qualid字段可能在你当前使用的Javac版本中已经被移除或重命名。

解决这个问题的方法有:

更新JDK版本:确保你的项目和所有依赖项都使用相同的JDK版本。如果可能,升级到最新版本的JDK,以获得更好的兼容性和支持。

检查依赖库版本:如果你的项目依赖于其他使用Javac API的库,确保这些库的版本与你的JDK版本兼容。

我的解决方式就是更换jdk版本,通常低版本比较稳定,具体:

按Ctrl+shift+alt+S 进入模块管理界面,之后操作如图:

最后就 clean一下清理缓存,重新加载maven依赖

这样我就解决问题了,

版本问题也可以通过更改依赖版本解决问题,可以看具体情况



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。