gpt4 book ai didi

与 Maven 相比,Eclipse Java 11 类路径仅不起作用

转载 作者:行者123 更新时间:2023-12-04 19:26:20 25 4
gpt4 key购买 nike

将旧的 ERP 系统迁移到 JPMS 被证明是非常有问题的 (Java 11 Eclipse finds automatic module, Maven does not),所以我决定首先尝试简单地将 Java 8 替换为 Java 11,但通过不引入任何 module-info.java 文件将所有内容保留在类路径中.这实际上进行得很顺利。 Maven 正在毫无问题地编译它,并且生成的应用程序也从命令行启动。

但是当我将该 Maven 项目导入 Eclipse 2019-03 时,它会提示 a.o. java.xml 包,例如这个导入:

import javax.xml.namespace.QName;

这是有道理的,因为 JRE 是模块化的,并且这些类在 java.xml 模块中,我不包括在内。但是为什么 Maven 然后正确编译并且应用程序在 J11 下启动?

我怀疑我需要告诉 Eclipse 为这个项目“--add-modules=ALL-SYSTEM”,但我不确定在哪里或如何。我尝试将构建路径/库中的所有 JDK/JRE 模块从隐式移动到显式,但这没有帮助。

最佳答案

您可能在类路径上有一些多余的 xml api jar,而 javac(错误地)不会因为 JDK-8215739 而提示,但 Eclipse 已经(正确地)在 bug 536928 之后执行

在运行时,JVM 似乎会忽略类路径上已经出现在命名模块中的包,因此 javac 的行为实际上与此一致。

要解决您的问题:尝试“打开类型”以查找 javax.xml.namespace.QName 的任何副本在您的类路径上的 jar 中,并在您的 pom.xml 中排除这些依赖项

关于与 Maven 相比,Eclipse Java 11 类路径仅不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55489874/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com