Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何让Maven使用Eclipse工作区默认JRE?_Java_Eclipse_Maven_M2e - Fatal编程技术网

Java 如何让Maven使用Eclipse工作区默认JRE?

Java 如何让Maven使用Eclipse工作区默认JRE?,java,eclipse,maven,m2e,Java,Eclipse,Maven,M2e,我正在使用Spring工具套件和m2e将一些现有项目转换为Maven项目。该项目使用jdk1.6.020,在Eclipse中命名为[jdk1.6]。但是,当我执行Maven->updateproject时,它用标准的[JavaSE-1.6]替换了jre。虽然它们似乎指向相同的库,但名称的更改会导致一系列异常,如: 访问限制:WindowsPopupMenuSeparatorUI类型不正确 由于所需库C:\程序的限制,可访问 Files\Java\jdk1.6.0\u 20\jre\lib\rt.

我正在使用Spring工具套件和m2e将一些现有项目转换为Maven项目。该项目使用jdk1.6.020,在Eclipse中命名为[jdk1.6]。但是,当我执行Maven->updateproject时,它用标准的[JavaSE-1.6]替换了jre。虽然它们似乎指向相同的库,但名称的更改会导致一系列异常,如:

访问限制:WindowsPopupMenuSeparatorUI类型不正确 由于所需库C:\程序的限制,可访问 Files\Java\jdk1.6.0\u 20\jre\lib\rt.jar

My pom.xml具有以下特性:

<plugin>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>2.3.2</version>
    <configuration>
        <source>1.6</source>
        <target>1.6</target>
    </configuration>
</plugin>

maven编译器插件
2.3.2
1.6
1.6
有没有办法让Maven/m2e使用默认工作区JRE,而不是用.classpath中的特定工作区替换它

  • 进入项目上的“配置生成路径”并转到“库”选项卡
  • 删除JRE系统库
  • 单击“添加库…”并选择“工作区默认JRE”

  • 这将为您提供当前的JRE,而不是指定特定的JRE。事实证明,Maven似乎没有办法做到这一点。相反,我将Eclipse设置中的错误更改为警告,同时与违规代码的所有者一起解决问题。

    将maven编译器插件添加到pom中会迫使maven使用给定版本的Java:

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                 <version>3.3</version>
                 <configuration>
                     <source>1.8</source>
                     <target>1.8</target>
                 </configuration>
            </plugin>
        </plugins>
    </build>
    
    
    org.apache.maven.plugins
    maven编译器插件
    3.3
    1.8
    1.8
    
    但是如果系统上同时安装了jre和jdk(对于特定的java版本),maven可能会选择jre,然后抱怨它需要jdk。这可能发生在Eclipse中使用Maven>更新项目之后

    要解决这个问题,在Eclipse中,右键单击JRE系统库>属性>环境并选择JavaSE-1.8。如果系统中有多个兼容的JRE,请勾选jdk1.8.x>OK>selectjavase-1.8(jdk1.8.x)as Execution environment>OK


    现在,maven应该选择Java版本1.8,Eclipse将告诉maven使用jdk1.8作为该Java版本的默认JRE。

    我确实选择了它,但maven在更新项目时更改了该属性。它用特定的JRE.Hmmm.替换工作区默认设置。。然后检查pom是否具有对编译器级别的硬编码引用。