【问题标题】:Specifying JDK 16 in Maven properties在 Maven 属性中指定 JDK 16
【发布时间】:2021-07-12 11:38:49
【问题描述】:

我认为这两行指定了 JDK 11。

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

我正在使用 Java FX 16,并使用 JDK 16 编译代码。

当我尝试指定 JDK 16 时:

<maven.compiler.source>16</maven.compiler.source>
<maven.compiler.target>16</maven.compiler.target>

我收到此错误消息:

Caused by: java.lang.module.InvalidModuleDescriptorException: Unsupported major.minor version 60.0

附:这是pom.xmlhttps://pastebin.com/raw/qTe5Vtnq

P.P.S 根据日志,我是通过/usr/lib/jvm/java-16-openjdk/bin/java编译运行的。

【问题讨论】:

    标签: java maven pom.xml


    【解决方案1】:

    看起来这是一个错误。

    https://github.com/openjfx/javafx-maven-plugin/issues/125

    使用 JDK 16 的绝对路径添加 &lt;executable&gt;&lt;/executable&gt; 应该可以修复它。

    【讨论】:

    • &lt;fork&gt;true&lt;/fork&gt;
    【解决方案2】:

    在 JDK8 之外,您需要指定 JDK 的 javac 路径,并且必须将 fork 设置为 true 才能使用上述编译器在 maven-compiler-plugin pom.xml 文件中执行代码。

    这里是maven-compiler-plugin配置,-

    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.8.1</version>
        <configuration>
            <source>16</source>
            <target>16</target>
            <encoding>UTF-8</encoding>
            <fork>true</fork>
            <executable>C:\Progra~1\Java\jdk-16.0.2\bin\javac</executable>
        </configuration>
    </plugin>
    

    【讨论】:

      猜你喜欢
      • 2011-01-31
      • 2016-07-08
      • 2014-12-23
      • 1970-01-01
      • 2011-03-14
      • 1970-01-01
      • 2023-03-24
      • 2021-08-30
      相关资源
      最近更新 更多