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

Maven编译try-with-resources报错,添加-source 7后仍异常求助

解决Maven编译Try-with-Resources的错误及后续配置问题

先梳理下你的环境信息:

  • Apache Maven 3.5.2,主目录:/usr/share/maven
  • Java 1.8.0_162,主目录:/usr/lib/jvm/java-8-openjdk-amd64/jre
  • Linux 4.15.0-20-generic amd64

第一个错误的根源

Try-with-Resources是Java 7才引入的语法特性,但Maven默认会用-source 1.5来编译代码,这就直接导致了编译报错:

/path/driver.java:[29,13] try-with-resources is not supported in -source 1.5 [ERROR] (use -source 7 or higher to enable try-with-resources)

第二个错误的原因

你尝试添加-source 7参数后出现的「设置文件不存在」错误,应该是命令行参数输入错误导致的——比如你可能误把参数格式写错,或者打错了字符(比如把参数写成了类似-Dmaven.settings.file=/path/ource,最后那个ource明显是拼写失误),Maven错误地把这个无效参数当成了用户设置文件的路径,所以才会报错找不到。

正确的解决方法

推荐直接在项目的pom.xml里配置编译插件,这样既不用每次敲命令行参数,也能避免输入错误,团队成员也能共享正确的配置:

在pom.xml的<build>节点下的<plugins>里添加以下配置(用你的Java 1.8版本,比7更兼容):

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>3.8.1</version> <!-- 这个版本兼容Java 8,也可以用更高的稳定版本 -->
    <configuration>
        <source>1.8</source>
        <target>1.8</target>
        <encoding>UTF-8</encoding> <!-- 匹配你的平台编码 -->
    </configuration>
</plugin>

如果只是临时想用命令行解决,正确的命令应该是:

mvn clean install -Dmaven.compiler.source=1.8 -Dmaven.compiler.target=1.8

配置完成后,重新执行mvn clean install就能正常编译包含Try-with-Resources的代码了。

内容的提问来源于stack exchange,提问作者david.t_92

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 06:53:32