当前位置: 首页 > 知识库问答 >
问题:

Maven编译错误请尝试使用资源

冯阳云
2023-03-14

我的系统中有以下配置:

Apache Maven 3.5.2 Maven主页: /usr/share/mavenJava版本:1.8.0_162,供应商:Oracle CorporationJava主页: /usr/lib/jvm/java-8-openjdk-amd64/jre默认语言环境:en_US,平台编码:UTF-8操作系统名称:"linux",版本:"4.15.0-20-通用", arch:"amd64",系列:"unix"

当我编译(使用maven)我的项目时,我得到以下错误:

/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)

我试图添加标志源7,但这不是解决问题的方法,因为它给我带来了另一个错误:

[ERROR] Error executing Maven.
[ERROR] The specified user settings file does not exist: /path/ource

我在互联网上搜索第一个错误,我什么也没找到

共有3个答案

皇甫伟彦
2023-03-14

要回答第一部分,请在POM中添加以下行以设置语言级别

<properties>
    <maven.compiler.source>1.7</maven.compiler.source>
    <maven.compiler.target>1.7</maven.compiler.target>
</properties>

在添加这些行之后,您可以成功地构建jar,尽管当您运行它时,您的jar将给出一个no main manifest属性错误。

这可以通过运行java-cp应用程序来解决。jarcom。一些包裹。SomeClass

或者,为了纠正这个问题并制作一个可执行的jar,让您的pom看起来像

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-dependency-plugin</artifactId>
            <executions>
                <execution>
                    <id>copy-dependencies</id>
                    <phase>prepare-package</phase>
                    <goals>
                        <goal>copy-dependencies</goal>
                    </goals>
                    <configuration>
                        <outputDirectory>${project.build.directory}/lib</outputDirectory>
                        <overWriteReleases>false</overWriteReleases>
                        <overWriteSnapshots>false</overWriteSnapshots>
                        <overWriteIfNewer>true</overWriteIfNewer>
                    </configuration>
                </execution>
            </executions>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-jar-plugin</artifactId>
            <configuration>
                <archive>
                    <manifest>
                        <addClasspath>true</addClasspath>
                        <classpathPrefix>lib/</classpathPrefix>
                        <mainClass>fully.qualified.main</mainClass>
                    </manifest>
                </archive>
            </configuration>
        </plugin>
    </plugins>
</build>
冷正信
2023-03-14

@Ravindra已经建议了一个选项。另一个选项是添加属性。

<properties>
  <maven.compiler.source>1.8</maven.compiler.source>
  <maven.compiler.target>1.8</maven.compiler.target>
</properties>

请参阅maven编译器插件参考。

翟迪
2023-03-14

如果您希望使用Java8语言特性(-Source 1.8),并且还希望编译的类与JVM 1.8(-Target 1.8)兼容,您可以添加以下两个属性,这是插件参数:

<project>
  [...]
  <properties>
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
  </properties>
  [...]
</project>

或者直接配置插件:

<project>
  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.7.0</version>
        <configuration>
          <source>1.8</source>
          <target>1.8</target>
        </configuration>
      </plugin>
    </plugins>
  </build>
</project>

查看本文了解更多详情。但是在JDK 1.7(内部)版本中引入了尝试资源。

 类似资料:
  • 问题内容: 我进行了全新的OSX 10.9.3全新安装并安装了pip,然后执行了 两次安装似乎都非常令人满意,并且运行没有任何错误(尽管有不计其数的警告)。当我尝试使用导入熊猫运行python脚本时,出现以下错误: 如何解决此错误并使熊猫正确加载? 问题答案: 您可以安装熊猫的早期版本。 在我的情况下,它解决了问题…

  • 问题内容: 导入熊猫时,会出现以下错误: 我正在运行Python 2.7.5,Pandas 0.14.1和Numpy 1.9.0。我尝试使用pip安装两种版本的旧版本,每次都会出现重大错误。我是Python的初学者,因此这里的任何帮助将不胜感激。:) 编辑:运行OS X 10.9.4 编辑2:这是我卸载并重新安装Numpy + Pandas,然后运行.py文件的视频的链接:https ://www

  • 问题内容: 当我在Netbeans中构建并运行程序时,它可以正常工作。但是当我尝试“ mvn compile”时,使用相同的pom.xml文件会出现以下错误: 我的Java版本不是1.3,这里是“ mvn -version”的结果 这是第53行: 问题答案: 问题是在Maven2中默认使用和 您可以通过将其添加到pom中来解决此问题: 将其放在最顶层的父pom中是很实际的,这样您派生的pom不需要

  • 编译模块com。实例我的包裹。GWT。HelloGWT [INFO]验证新编译的单元 [INFO]在第一次过程中忽略了1个单元,其中包含编译错误 [INFO]编译时将-strict或-logLevel设置为TRACE或DEBUG以查看所有错误 [INFO]在文件:/home/ilsurih/Projects/maven hibernate/src/main/java/com/example/myP

  • 我试图运行Neo4j手册第32章中的第一个示例,关于使用嵌入在Java应用程序中的Neo4j,该文件是,我正在使用maven,具有适当的Neo4j依赖项。我收到一个编译错误,似乎表明我正在使用Java 1.5,但我看到的所有内容都告诉我我正在使用Java 1.7。 错误如下: 以下是我认为Maven应该使用Java 1.7的原因: [root@cerift02]#mvn-版本 Apache Mav

  • 我想知道,当异常发生时,try with resource语句如何在进入catch块之前关闭资源。当异常发生时,执行立即跳转到catch块。因此,try-with-resource实际上关闭了资源。 为了更好地理解它的工作原理,我决定看看编译器是如何实现它的。我编写了下面的代码并对其进行了编译。 输出 然后我访问了www.javadecompilers.com,并在那里试用了反编译程序。两个反编译