Intellij在编译期间没有看到一些非公共的JDK 9类

时间:2017-09-28 20:43:19

标签: java maven intellij-idea java-9 intellij-idea2017

我有一个项目之前使用过JDK 8.0,现在正在迁移到JDK 9.该项目尚未模块化。

修复了对私有JDK API的关闭访问的所有问题,并且我能够使用maven,1.8语言级别和JDK 9从命令行构建项目。

Intellij Idea没有突出任何问题,JDK 9设置为项目SDK,但如果我尝试在Idea本身内构建项目 - 我在构思控制台中遇到编译问题:

Information:javac 9 was used to compile java sources
Error:(5, 16) java: package sun.misc does not exist
Error:(22, 19) java: cannot find symbol
  symbol:   class Unsafe
  location: class <...>.UnsafeAccessor

因此,该项目现在正在使用JDK 9在CMD中构建正常,错误并没有太大意义,因为sun.misc.Unsafe存在并且在JDK 9中公开,Idea本身并不突出显示任何内容,因此它理解一切都存在。

什么可能导致Idea中的项目构建问题?

有关IDEA构建的信息:

IntelliJ IDEA 2017.2.5

Build#IU-172.4343.14,建于2017年9月26日

JRE:1.8.0_152-release-915-b12 x86_64

JVM:JetBrains s.r.o的OpenJDK 64位服务器VM

Mac OS X 10.13

2 个答案:

答案 0 :(得分:2)

对我来说,解决方案是在IDEA的“偏好设置”的Java编译器部分中禁用选项使用'--release'选项进行交叉编译'(Java 9及更高版本)。 JDK 11,IDEA 2020.1。

答案 1 :(得分:0)

好的,在我解决了所有真正的问题,例如在--add-modules等中添加模块 - 之后我能够在cmd和Idea中构建语言级别为9和JDK 9的项目。此外,我能够在cmd和Idea中使用语言级别8和JDK 8构建相同的代码库。我可以使用JDK 9和语言级别8在cmd / mvn中构建它,但在Idea中 - 我收到很多错误,例如&#34;包sun.misc不存在&#34;。在修复并检查所有这些之后,对我来说它看起来像是一个纯粹的Idea bug。