【问题标题】:migrating from using jdk8 to jdk11, getting errors related to tools.jar从使用 jdk8 迁移到 jdk11,得到与 tools.jar 相关的错误
【发布时间】:2021-08-20 22:39:47
【问题描述】:

我正在将一个项目从 jdk8 迁移到 jdk11。 在我的 pom.xml 文件中,我放了

<maven.compiler.source>11</maven.compiler.source>
<maven.compiler.target>11</maven.compiler.target>
<java.version>11</java.version>

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>3.8.1</version>
    <configuration>
        <source>1.11</source>
        <target>1.11</target>
        <release>11</release>
        <fork>true</fork>
    </configuration>
</plugin>

运行 mvn clean install 命令后,我收到一个错误:在指定路径 /opt/jdk-11.0.9/../lib/tools.jar 找不到工件 jdk.tools:tools:jar:1。我知道 tools.jar 已从 jdk11 中删除。我在想我的 pom.xml 中的一些依赖项依赖于 tools.jar,我还没有找到一个好的解决方案来弄清楚这些依赖项是什么。或者可能是其他一些问题。

【问题讨论】:

  • 在编译器插件的配置下去掉&lt;source&gt;1.11&lt;/source&gt; &lt;target&gt;1.11&lt;/target&gt;,并尝试使用-X标志执行调试。要分析依赖关系,请尝试使用jdeps

标签: java java-8 migration java-11 tools.jar


【解决方案1】:

根据您的上述配置,预计会出现以下错误:

致命错误编译:错误:无效目标版本:1.11

我建议 το 更改要解决的源和发布目标11 而不是1.11,请参见下面的示例。

 <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.8.1</version>
        <configuration>
            <source>11</source> 
            <target>11</target>
        </configuration>
    </plugin>

然后使用mvn dependency:treemvn dependency:analyze 和/或使用-Xoption 对其进行调试。

【讨论】:

    猜你喜欢
    • 2021-10-25
    • 1970-01-01
    • 2019-06-24
    • 2022-06-28
    • 2022-12-09
    • 1970-01-01
    • 2020-03-26
    • 1970-01-01
    • 2015-04-18
    相关资源
    最近更新 更多