You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

额外注意事项

  1. 如果你用IDE(比如IntelliJ IDEA或Eclipse)开发,记得检查IDE的项目SDK配置是否为JDK 10,避免IDE编译环境和Maven不一致。
  2. 确认系统的JAVA_HOME环境变量指向JDK 10的安装路径,保证Maven调用的是正确的JDK版本。

内容的提问来源于stack exchange,提问作者Vinay Prajapati

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 12:32:53