【Java | IntelliJ IDEA】项目编译未报错但代码中某些包提示找不到

问题背景:

原来在某台电脑上开发的一个项目,用到的sun.Font包下的一些类,后来因为换设备迁移到另一台电脑上,结果idea构建的时候就报错,找不到这个程序包。但是实际上代码是没有编译报错的,并且据说换成VSCode就能正常运行。

问题原因:

经过学习网上的资料,发现主要原因是idea太“高级”了,高级到导入和编译使用的jre可能是不同的,当然这里也有我图方便使用了内置maven的原因。
首先这个包在jdk1.8里肯定是有的,在后续版本里可能被移除,或有更改之类的,编译是按1.8版本编译的,但是maven构建的时候使用的是idea指定的某个版本,我所迁移的另一台电脑之前一直装的是11版本的jdk,因此导致idea配置了11版本的jdk,让maven去构建,于是报错。

解决方案:

1.确定项目使用的jdk版本

打开ProjectStructure窗口,mac快捷键command+;win快捷键ctrl+alt+s,左侧选择project,这里的project sdk和language level要设置为项目使用的版本。一般如果是直接从仓库拉取的代码,这两块默认就是对的。如果是从硬盘导入的代码,project sdk一般是对的,language level可能会是idea之前使用的(我的是这样的)
【Java | IntelliJ IDEA】项目编译未报错但代码中某些包提示找不到_第1张图片

2.修改Maven导入时的jdk版本

打开设置,mac快捷键command+,win快捷键(好像是)ctrl+s,找到这个设置:Build, Execution, Deployment ⇒ Build Tools ⇒ Maven ⇒ Importing,右边底下有一个JDK for importer项,设置为与项目jdk相同
【Java | IntelliJ IDEA】项目编译未报错但代码中某些包提示找不到_第2张图片

3.修改构建时的jre环境

同样是上面这个地方,切到Runner选项,右侧JRE项修改为与项目jdk相同的版本。
【Java | IntelliJ IDEA】项目编译未报错但代码中某些包提示找不到_第3张图片

总结

到这里重新构建一下,问题应该就解决了,如果还没有解决,那么可能还有别的问题需要check一下。

你可能感兴趣的:(Java,java,intellij-idea,ide)