无法从Idea for Java 9运行maven安装(找不到tools.jar)

时间:2018-03-07 17:04:42

标签: java maven intellij-idea

我将项目从Java 8迁移到Java 9.现在,当我在Intellij Idea中的这个项目上运行maven install时,它失败并出现以下错误:

  

[错误]无法在项目教程中执行目标org.apache.maven.plugins:maven-compiler-plugin:3.7.0:compile(default-compile):致命错误编译:找不到tools.jar:C: \ Program Files \ Java \ jdk-9.0.1 .. \ lib \ tools.jar - > [帮助1]

Idea运行以下命令:

"C:\Program Files\Java\jdk-9.0.1\bin\java" "-Dmaven.multiModuleProjectDirectory=C:\Users\User\workspace\tutorial" -Dmaven.home=C:\Users\User\install\apache-maven-3.3.9 -Dclassworlds.conf=C:\Users\User\install\apache-maven-3.3.9\bin\m2.conf "-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2017.3.2\lib\idea_rt.jar=63961:C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2017.3.2\bin" -Dfile.encoding=UTF-8 -classpath "C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2017.3.2\lib\idea_rt.jar" com.intellij.rt.execution.CommandLineWrapper C:\Users\User\AppData\Local\Temp\idea_classpath org.codehaus.classworlds.Launcher -Didea.version=2017.3.2 -s C:\Users\User\.m2\settings.xml install -DskipTests -P localhost

如果我从Windows命令行运行mvn install,它可以正常工作。

所有设置都指向Java 9:

C:\Users\User>java -version
java version "9.0.1"
Java(TM) SE Runtime Environment (build 9.0.1+11)
Java HotSpot(TM) 64-Bit Server VM (build 9.0.1+11, mixed mode)

C:\Users\User>echo %JAVA_HOME%
C:\Program Files\Java\jdk-9.0.1

C:\Users\User>echo %JRE_HOME%
C:\Program Files\Java\jre-9.0.1

C:\Users\User>echo %IDEA_JDK%
C:\Program Files\Java\jdk-9.0.1

C:\Users\User>echo %IDEA_JDK_64%
C:\Program Files\Java\jdk-9.0.1

在Idea中,以下设置都指向Java 9:

  • 项目结构 - >项目设置 - >模块 - >来源 - >语言级别(Picture

  • 项目结构 - >项目设置 - >模块 - >依赖项 - >模块 SDK(Picture

  • 文件 - >设置 - >构建,执行,部署 - >构建 工具 - > Maven-> Runner-> JRE(Picture

我的pom的相关片段:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>${maven-compiler-plugin.version}</version>
    <configuration>
        <source>${java.version}</source>
        <target>${java.version}</target>
        <testSource>${java.version}</testSource>
        <testTarget>${java.version}</testTarget>
        <compilerArgument>-Xlint:all</compilerArgument>
        <showWarnings>true</showWarnings>
        <showDeprecation>true</showDeprecation>
        <meminitial>${maven-compiler-meminitial}</meminitial>
        <maxmem>${maven-compiler-maxmem}</maxmem>
        <compilerArgs>
            <arg>--add-modules</arg>
            <arg>java.xml.bind</arg>
            <arg>--add-modules</arg>
            <arg>java.se.ee</arg>
        </compilerArgs>
    </configuration>
</plugin>

<properties>
    <java.version>9</java.version>
    <maven-compiler-meminitial>512m</maven-compiler-meminitial>
    <maven-compiler-maxmem>1024m</maven-compiler-maxmem>
    <maven-compiler-plugin.version>3.7.0</maven-compiler-plugin.version>
</properties>

我会很感激任何可能出错的提示。

更新

我也注意到,Idea将JAVA主页指向设置中的1.8(Picture),而环境变量指向1.9(Picture)。

2 个答案:

答案 0 :(得分:1)

如果有人遇到类似问题,我可以通过以下步骤解决问题:

  • 已安装2018.1 Release Candidate版本(在JetBrains论坛上建议)。
  • 改变了Maven 安装在Idea to Bundled。
  • 删除了我的.idea目录 项目并将其重新导入为maven项目。

答案 1 :(得分:0)

启动时,intellij以这种方式确定JDK。请参阅intellij安装目录(bin)中的idea.bat文件

::找到将用于运行IDE的JDK安装目录。 ::尝试(按顺序):IDEA_JDK,想法%BITS%.exe.jdk,.. \ jre,JDK_HOME,JAVA_HOME。

希望这有帮助