为了账号安全,请及时绑定邮箱和手机立即绑定

升级到 JDK 10 并在 Eclipse 中遇到大量编译错误

升级到 JDK 10 并在 Eclipse 中遇到大量编译错误

波斯汪 2021-11-03 14:36:00
更新:我最终发现下面描述的问题只是最初出现的问题。实际问题是,从 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.desktop在Modulepath. 此外,此代码的 ant 构建工作正常。编辑:正如评论中所建议的,这可能是 IDE 配置错误,但我不知道我能解决什么。我已经离开 Java 几年了,虽然我已经了解了 JDK 是用 JDK 9 重新组织的,并且引入了模块,但我不知道是否有我应该做的事情明确地使javax.accessibility包在类路径上可用。我刚刚在项目的构建路径中添加了一个 JRE 系统库,就像我一直在 Eclipse 中处理 Java 项目一样。在构建路径配置 UI 中,我看到 JRE 系统库(绑定到 JDK 10)是Modulepath. 在 JRE 系统库下,我看到了许多模块,在它们上面是一个Is Module我可以编辑的条目。它在左侧显示可用模块,并在右侧的两个树表中显式和隐式包含模块。这些都不包括javax.accessibility,但jdk.accessibility被列为明确包括。左侧的可用模块似乎都与可访问性没有任何关系。所以我不知道我还能做些什么来包含那个丢失的包。一些摇摆类依赖于它,所以它似乎应该在默认情况下就在那里。
查看完整描述

1 回答

?
慕桂英4014372

TA贡献1871条经验 获得超13个赞

事实证明,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 的支持正在开发中,但我没有尝试。


查看完整回答
反对 回复 2021-11-03
  • 1 回答
  • 0 关注
  • 230 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信