Mac环境下JDK 10出现“var cannot be resolved to a type”错误求助
解决Maven项目中
var cannot be resolved to a type错误 问题背景
我在Mac机器上安装了JDK 10,已验证版本信息如下:
localhost:java-10 vinayprajapati$ java -version java version "10" 2018-03-20 Java(TM) SE Runtime Environment 18.3 (build 10+46) Java HotSpot(TM) 64-Bit Server VM 18.3 (build 10+46, mixed mode)
为确保编译器版本一致,执行了以下命令:
localhost:java-10 vinayprajapati$ javac -version javac 10
随后我创建了一个简单的Maven项目,项目结构如下:
localhost:java-10 vinayprajapati$ tree . ├── ...
但当前遇到错误:var cannot be resolved to a type,请求技术支持。
问题分析与解决方案
别担心,这个问题很常见——var是Java 10才引入的局部变量类型推断特性,而Maven默认的maven-compiler-plugin通常会以Java 8作为默认编译版本,哪怕你的系统JDK是10,Maven也可能用低版本规则编译代码,导致不识别var语法。
解决方法很直接,只需要在你的项目pom.xml里明确指定编译插件的源代码和目标版本为10即可:
<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <!-- 建议使用3.8.1及以上版本,确保对JDK 10的完整支持 --> <version>3.8.1</version> <configuration> <source>10</source> <target>10</target> </configuration> </plugin> </plugins> </build>
配置完成后,在项目根目录执行以下命令重新编译:
mvn clean compile
额外注意事项
- 如果你用IDE(比如IntelliJ IDEA或Eclipse)开发,记得检查IDE的项目SDK配置是否为JDK 10,避免IDE编译环境和Maven不一致。
- 确认系统的
JAVA_HOME环境变量指向JDK 10的安装路径,保证Maven调用的是正确的JDK版本。
内容的提问来源于stack exchange,提问作者Vinay Prajapati
相关产品推荐
相关产品推荐

