繁体   English   中英

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

[英]Upgrade to JDK 10 and encountered extensive compile errors in Eclipse

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

没有理由进一步阅读

我将Swing应用程序从JDK 8升级到JDK 10(在Mac上为Oracle Java),但是eclipse抱怨缺少javax.accessibility.Accessible ,这是我的一个课程所必需的。 我理解该错误的含义,但是我无法弄清楚为什么eclipse无法找到该软件包。 我已经在网上搜索了一个多小时,但我无法暗示有人遇到此问题。 看来我应该只能够从JDK中访问该程序包,但显然我丢失了一些东西。

EDIT2:

我关闭了该标志,以在生成错误时中止构建,现在我看到有数百个错误。 很难说哪个是主要的,但常见的情况是class java.awt.<SomeClass> is not accessible 似乎对于每个awt类都会发生这种情况。 我的代码未组织为模块,并且我在Modulepath上看到java.desktop上隐式可用。 此外,此代码的ant构建也可以正常工作。

编辑:

如评论中所建议,这可能是IDE配置错误,但是我不知道该如何解决。 我已经离开Java几年了,尽管我已经足够了解JDK与JDK 9一起进行了重组,并且引入了模块,但是我不知道我是否应该做些什么明确地做以使javax.accessibility包在类路径上可用。 我只是将JRE系统库添加到了项目中的构建路径,就像我在Eclipse中对Java项目所做的一样。

在构建路径配置UI中,我将JRE系统库(绑定到JDK 10)看作是Modulepath下的唯一条目。 在JRE系统库下,我看到了许多模块,在它们上方是一个可以编辑的条目Is Module 它在左侧显示了可用的模块,在右侧的两个树表中显式和隐式包含了模块。 这些都不包含javax.accessibility ,但是jdk.accessibility被列出为明确包含。 左侧的可用模块似乎均与可访问性没有任何关系。 因此,我对于可以进一步包括该丢失的程序包一无所知。 一些swing类依赖于它,因此似乎默认情况下应该就在那儿。

事实证明,除了特定的(较旧的)发行版之外,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下显示为未绑定的库。 我刚刚删除了它,并在Modulepath下添加了JRE系统库,并且所有编译的内容都没有错误。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM