0

更新:我最终发现下面描述的问题只是最初出现的问题。实际问题是,在从 Java 8 更新到 Java 10(和 11)之后,Eclipse 无法正确编译我的项目。JDK 库和其他设置配置正确,我收到近 1,000 个编译错误。

没有理由继续阅读

我将一个 Swing 应用程序从 JDK 8 升级到 JDK 10(Mac 上的 Oracle Java),eclipse 抱怨javax.accessibility.Accessible我的一个类缺少它,并且需要它。我理解这个错误的含义,但我不明白为什么 eclipse 找不到那个包。我已经在网上搜索了一个多小时,但我无法暗示任何人有这个问题。看来我应该能够从 JDK 中访问该包,但我显然遗漏了一些东西。

编辑2:

当它出现错误时,我关闭了标志以中止构建,我现在看到有数百个错误。很难说哪些是主要的,但常见的情况是class java.awt.<SomeClass> is not accessible. 这似乎发生在每个 awt 类中。我的代码没有组织为模块,我认为java.desktopModulepath. 此外,此代码的 ant 构建工作正常。

编辑:

正如评论中所建议的,这可能是 IDE 配置错误,但我不知道我能修复什么。我已经离开 Java 几年了,虽然我已经知道 JDK 是用 JDK 9 重新组织的,并且引入了模块,但我不知道是否有我应该做的事情明确地做以使javax.accessibility包在类路径上可用。我刚刚在项目的构建路径中添加了一个 JRE 系统库,就像我一直在 Eclipse 中处理 Java 项目一样。

在构建路径配置 UI 中,我看到 JRE 系统库(绑定到 JDK 10)是Modulepath. 在 JRE 系统库下,我看到了许多模块,在它们之上是一个Is Module我可以编辑的条目。它在左侧显示了可用的模块,在右侧的两个树表中显式和隐式地包含了模块。这些都不包括javax.accessibility,但jdk.accessibility被列为明确包括。左侧的可用模块似乎都与可访问性没有任何关系。所以我不知道我能做些什么来包括那个丢失的包。一些摇摆类依赖于它,所以它似乎应该默认存在。

4

1 回答 1

1

事实证明,Eclipse 不支持 Java 10+,除非在特定(较旧的)版本中。我一直在使用最新版本 (4.9.0),使用 Java 10 和 Java 11 JDK 会出现大量编译问题(近 1,000 个错误)。(javax.accessibility我的问题中描述的问题只是第一个呈现系统。)

我安装了 Eclipse Oxygen.3a (4.7.3a),所有使用 JDK 10 和 11 的编译问题都消失了。一开始有一个问题,很容易解决。将现有 Java 项目导入工作区后,编译错误比以前更多。这是因为 .project 文件中的 JRE 系统库设置显然不兼容。JRE 在Classpath. 我刚刚删除了它并在 下添加了 JRE 系统库Modulepath,并且所有内容都没有错误地编译。

几个月前我看到一篇帖子说 Eclipse Photon 对 Java 10 的支持正在开发中,但我没有尝试。

于 2018-10-08T03:35:10.623 回答