Intellij idea IntelliJ:找不到java.util.Optional

Intellij idea IntelliJ:找不到java.util.Optional,intellij-idea,java-8,Intellij Idea,Java 8,在IntelliJ的一个新项目中,我设置了Java8JRE/JDK和语言级别8.0 但是由于某些原因,IDE无法找到java.util.Optional。该项目编译并运行良好(也可以在IDE中),但代码完成不起作用 有什么想法吗?在他们的bugtracker上创建罚单之前,我想问问其他一些用户…我在ubuntu中遇到了类似的问题。对我来说,问题是我使用了JDK1.7,当我把它改成JDK1.8时,一切都很好 现在,这是有道理的,因为可选的是JDK1.8中引入的东西,在此之前,这个概念只存在于番石榴

在IntelliJ的一个新项目中,我设置了Java8JRE/JDK和语言级别8.0

但是由于某些原因,IDE无法找到
java.util.Optional
。该项目编译并运行良好(也可以在IDE中),但代码完成不起作用


有什么想法吗?在他们的bugtracker上创建罚单之前,我想问问其他一些用户…

我在ubuntu中遇到了类似的问题。对我来说,问题是我使用了JDK1.7,当我把它改成JDK1.8时,一切都很好


现在,这是有道理的,因为可选的是JDK1.8中引入的东西,在此之前,这个概念只存在于番石榴中:

我终于明白了这一点。出于任何原因,在编辑器、常规和自动导入下的exlusions中有一个java.util.Optional条目

去掉它就成功了。不知道它是怎么或者为什么会在那里。听起来不像我想做的任何事。

愚蠢的IntelliJ

我有一个SpringBoot项目,效果很好。然后,第二天,当我想运行它时,我得到了以下错误:
原因:java.lang.Error:未解决的编译问题:
无法解析类型java.util.Optional。它是从必需的.class文件中间接引用的
,不做任何更改

  • 我清除了IntelliJ缓存
虽然这是一个maven项目,但它已经在使用JDK8了

  • 我更改了项目设置,并(再次)说要使用JDK8
  • Maven重新导入、清理项目、构建->重建项目,然后它神奇地再次工作
遇到了同样的问题(在IntelliJ 2017.2.7中),并这样解决了它: 项目结构->模块->模块SDK,并将其更改为1.8


我还首次将Java编译器设置为8,将项目结构->项目->项目SDK和项目语言级别设置为8,但没有成功。最后,我描述的步骤最终解决了这个问题。

我最近遇到了这个问题。该问题与我的Project SDK设置有关。不需要清除任何缓存


当我的Project SDK设置为1.8(1.8.0_202)时,会出现此问题。该问题通过将其更改为11(11.0.6)得到修复。还确认,当我将其切换回1.8时,问题再次出现。

如果您使用的是Windows,您的环境变量设置是否正确?你能仔细检查一下编译这个项目使用的是哪个版本的Java吗?我在Linux上。目前,我的系统上只安装了一个JRE/JDK,上面写着“Java(TM)SE运行时环境(build 1.8.0_11-b12)”,您的IntellJ版本是最近的吗?至少
13.1.x
?您确定选择的项目SDK指向JDK 8,并且您的模块语言级别也使用了正确的JDK吗?我刚刚在2017.1.3中遇到了这个问题。我的gradle项目肯定设置为JDK 8,它甚至建议使用同一软件包中的OptionalDouble和其他类。但它一直自动更正到可选的guava版本,并删除任何手动添加的java.util.Optional导入。我通过退出、gradle清理、关闭IDE、在intellij外部手动编辑文件,然后重新启动intellij来修复它。问题终于解决了。在我看来,自动完成数据有时会处于一种奇怪的状态。正如我在问题和评论中提到的,我从一开始就只设置了v8。不幸的是,我不记得我最终是如何解决这个问题的……啊,这不是问题所在。似乎可选的使用细节不存在,所以ide建议将首选项更改为警告而不是错误。我选择了它,现在它显示一个警告,不再显示错误。清理intellij ide缓存并不能解决我的问题。然后我检查了一下,如果我有这个作为排除我发现了它!!!但我并没有在排除列表中添加可选项。我是一个曾经在eclipse中编写代码的人,现在出于某种原因,我改用intellij。尝试使用这个智能ide是不值得的,因为它不能解决常见的愚蠢问题。