我有一个项目之前使用过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
答案 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。