我将项目从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>
我会很感激任何可能出错的提示。
更新
答案 0 :(得分:1)
如果有人遇到类似问题,我可以通过以下步骤解决问题:
答案 1 :(得分:0)
启动时,intellij以这种方式确定JDK。请参阅intellij安装目录(bin)中的idea.bat文件
::找到将用于运行IDE的JDK安装目录。 ::尝试(按顺序):IDEA_JDK,想法%BITS%.exe.jdk,.. \ jre,JDK_HOME,JAVA_HOME。
希望这有帮助