问题描述
今天在写项目时候遇到了这个报错Package 'java.lang' is declared in module 'java.base', which is not in the module graph
看起来像是哪里冲突或者配错了,不然不可能这么基础的包报错的~
查到的解决办法
使用itellij idea写javafx程序时,刚开始挺顺利的,功能也实现了。后来过了一段时间重新打开idea看项目时忽然发现一大片红色错误提示。我以为是少jar包导致的,就导入jar包,专门创建了一个maven工程重构项目来解决jar包问题,然而并没有说什么卵用,还是一大片红色。把光标放到红色代码上就提示如标题所示的错误信息。也是很郁闷。
直接运行一下项目,发现虽然报错,但是项目能正常运行,功能都能实现。很奇特。
通过查资料了解到javafx相关的依赖是java jdk自带的,不需要额外引用任何jar包。那么问题就应该出现在idea本身的某项配置上。
仔细回想之前都做了哪些重要操作可能导致这个错误。逐个查看、修改,看效果怎么样。
错误提示中提到了module这个单词,结合之前的操作,严重怀疑是下图所示的地方配置有误,当查看到如下图所示的地方时奇迹出现了:
当初使用lambda表达式的时候因为默认language level是5 ,不支持lambda表达式,所以把它改成了10(我中的jdk版本是10),本以为越高越好,正好配套了,并且当时该了之后没注意到报错,直接运行项目功能可以实现就直接完事了。
现在把language level从10改成8(从8起,开始支持lambda表达式),奇迹出现了,一大片红色报警突然全部消失,哈哈,好高兴!
至于为什么非8不可,那就不得而知了,idea自身的特殊配置,也不好深究。问题完美解决就行了,别的管他呢。
总结:这个错误是某些东西不匹配造成的,结合报错信息,加上一点灵感,问题得以解决。