【问题标题】:Java version - Maven - Classpath?Java 版本 - Maven - 类路径?
【发布时间】:2018-04-21 09:20:54
【问题描述】:

所以我将我的 maven 项目配置为 Java9

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <configuration>
                <source>1.9</source>
                <target>1.9</target>
                <compilerVersion>1.9</compilerVersion>
            </configuration>
        </plugin>
    </plugins>
</build>

但是如果我检查项目构建路径,它仍然在 Eclipse 中显示 JRE System Library [J2SE-1.5](而不是 JavaSE-9),所以它基本上使用 Java1.5 并给了我很多错误。如果我手动更正该条目,一切都很好。但是 Maven 不应该处理完整的类路径设置吗?这个问题的答案可能很简单,但我想不通。

谢谢!

编辑 修复方法是删除 compilerVersion 并编辑源标签和目标标签:

<configuration>
    <source>9</source>
    <target>9</target>
</configuration>

【问题讨论】:

  • 首先你使用哪个 Eclipse 版本?
  • 氧气!这会是个问题吗?

标签: java eclipse maven classpath


【解决方案1】:

第一步:检查 MAVEN 和 JAVA 的 PATH

mvn -v

在输出中检查“Java 版本”是否指向 1.9

Apache Maven 3.5.2 (138edd61fd100ec658bfa2d307c43b76940a5d7d; 2017-10-18T13:28:13+05:30)
Maven home: /Maven/3.5.2
Java version: 9.0.4, vendor: Oracle Corporation
Java home: /usr/lib/jvm/java-9-oracle
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "4.4.0-119-generic", arch: "amd64", family: "unix"

第 2 步:检查 IDE 中是否配置了 JDK 9(eclipse / sts)

  • 转到首选项 > Java > 已安装的 JRE :: Check if Java 9 is available
  • 如果 Java 9 不可用,则单击 添加
  • 选择 JRE 类型 Standard VM / JVM 并单击 下一步
  • JRE 主页 -- Java 9 主页路径。
  • JRE 名称 将自动填充,JRE 系统库 将显示 jrt-fs.jar 已加载。
  • 点击完成
  • 现在您应该会看到 JVM 8 和 9 showing up in the Installed JREs section
  • 点击应用并关闭

第 3 步:更新您的 Maven 项目以使更改生效

  • 按照Justin Albano 给出的提示,您就可以使用Java 9 处理您的Maven 项目了。

【讨论】:

  • 我使用的是eclipse内置的maven。但它总是将版本设置为 SE1.5。如果我手动将其设置为 SE9,则调用层次结构之类的某些功能将不再起作用,有什么想法吗?
【解决方案2】:

有时 Maven 源版本(1.9 是您的特殊情况)和 Eclipse 源版本不同步,特别是如果 pom.xml 文件中的源版本更改项目之后已在 Eclipse 中创建。要使两者重新同步,请执行以下操作:

  1. 右键单击项目
  2. 鼠标悬停Maven
  3. 点击Update Project...

您还可以使用 Alt + F5 更新 Maven 配置。如需更多信息,请参阅What causes imported Maven project in Eclipse to use Java 1.5 instead of Java 1.6 by default and how can I ensure it doesn't?

【讨论】:

  • 我当然试过了,但有时 eclipse 似乎会做一些事情,然后又是 SE1.5。我必须一遍又一遍地手动覆盖类路径。有趣的是,如果我将它设置为 JDK9,eclipse 中的类路径概述中的条目就会消失,一切都很好:(
  • 所以我尝试了一些东西,结果是更新项目将项目重置为 se1.5。错误需要在其他地方:(
猜你喜欢
  • 2020-03-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-01-06
  • 1970-01-01
  • 2014-11-29
  • 1970-01-01
  • 2016-10-08
相关资源
最近更新 更多