Java 21中RoundingMode无法解析的问题排查求助
解决Java 21下RoundingMode无法解析的问题
RoundingMode类在Java 21中仍属于java.math包,不存在API移除的情况,无法解析的问题基本是IDE或项目配置不匹配导致的,按以下步骤排查:
1. 核对项目JDK配置
- 打开IntelliJ的Project Structure(快捷键
Cmd + ;)- 切换到Project标签,确认
Project SDK选择的是Java 21,Project language level设置为21或21 - Preview features enabled - 切换到Modules标签,检查每个模块的
Language level和SDK是否与Project配置一致
- 切换到Project标签,确认
2. 检查IDE编译器与构建工具配置
- 打开Settings(快捷键
Cmd + ,)- 搜索
Build, Execution, Deployment > Build Tools > Maven > Runner,确保JRE选择的是Java 21 - 搜索
Build, Execution, Deployment > Compiler > Java Compiler,将Project bytecode version和所有模块的Module bytecode version设置为21
- 搜索
3. 清理IDE缓存并重启
执行File > Invalidate Caches...,选择Invalidate and Restart,清除IDE缓存后重启,解决缓存导致的配置不生效问题
4. 确认构建工具(Maven/Gradle)配置
Maven(pom.xml)
确保maven-compiler-plugin的source和target版本设置为21:
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.11.0</version> <configuration> <source>21</source> <target>21</target> </configuration> </plugin>
Gradle(build.gradle)
设置Java版本兼容性为21:
java { sourceCompatibility = JavaVersion.VERSION_21 targetCompatibility = JavaVersion.VERSION_21 }
5. 验证本地JDK安装
在终端执行以下命令,确认本地Java环境为21:
java -version javac -version
同时检查IntelliJ中配置的JDK路径(Project Structure > SDKs)是否与终端输出的Java路径一致
内容的提问来源于stack exchange,提问作者Will Lied
相关产品推荐
相关产品推荐

