Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么赢了';eclipse是否将编译器切换到Java8?_Java_Eclipse - Fatal编程技术网

为什么赢了';eclipse是否将编译器切换到Java8?

为什么赢了';eclipse是否将编译器切换到Java8?,java,eclipse,Java,Eclipse,我在eclipse中从SVN签出了一个Java项目,并意识到它需要Java 8,因为它使用lambdas等。我安装了Java 8的eclipse插件并重新启动了eclipse,并将项目设置为: 我注意到接近底部的地方,它说默认编译器符合性是1.7,因此我进入org.eclipse.jdt.core.prefs,并将编译器符合性变量设置为1.8,如下所示 . 但是,在Project->Preferences->Java编译器中,它仍然显示为: 我已经在Project->Java构建路径中设置了

我在eclipse中从SVN签出了一个Java项目,并意识到它需要Java 8,因为它使用lambdas等。我安装了Java 8的eclipse插件并重新启动了eclipse,并将项目设置为:

我注意到接近底部的地方,它说默认编译器符合性是1.7,因此我进入
org.eclipse.jdt.core.prefs
,并将编译器符合性变量设置为
1.8
,如下所示 . 但是,在Project->Preferences->Java编译器中,它仍然显示为:

我已经在Project->Java构建路径中设置了JRE:

但是编译器拒绝编译lambda表达式——我得到了一个错误,这个错误看起来就像我继续将它输入Java 7时所得到的一样

这是我正在使用的eclipse版本

Version: Kepler Service Release 1
Build id: 20130919-0819
解决这个问题的唯一方法是安装新版本的Eclipse,还是配置中遗漏了什么?

两件事:

首先,JRE与JDK不同。如果您确实有JDK,则需要配置eclipse以在您的设置中指向它

其次,在上面的屏幕截图中,编译器符合性级别设置为1.7。这会将所有代码视为使用Java1.7。将此更改为1.8以修复错误

为了获得对Java8的支持,您需要有EclipseLuna,但如果需要,您可以将其添加到开普勒SR2中。在你继续之前,我会尝试一下Luna和上面的建议。看

一旦获得了Luna,JAVA_HOME变量应该足以让Eclipse识别JDK 8。 如果要指定额外的JDK,可以通过以下步骤添加新的Java系统库:

Project -> Properties -> Java Build Path -> Libraries -> Add Library -> Java System Library
并导航到JDK 8的有效位置


您可以下载平台的JDK 8,因为eclipse开普勒SR1不支持新的Java™ 8种语言增强功能,如lambda表达式

从这里的信息:
我认为您应该使用带有支持插件的开普勒SR2,或者改用EclipseLuna


更新链接2016年9月16日:

首先,您应该获得JdK 8

如果您安装了Jdk。

您应该使用cmd提示符或系统变量设置其路径

有时,由于eclipse无法获取jdk的属性,因此可能没有设置路径

安装最新的ecipse luna可以解决您的问题

我有靛蓝和露娜。我可以在luna中设置1.8,但在indigo中设置1.7


您可以查看eclipse站点。它说EclipseLuna肯定会将JDK8的属性关联起来

我也有同样的问题,尽管我有:

  • 新下载的JDK1.8.0

  • JAVA_主页已设置

  • java-命令行报告1.8版本

  • 控制面板中的Java设置为1.8

  • 下载的月食火星

Eclipse只允许我在编译器首选项中选择编译器符合性级别op到1.7,即使我安装的JRE是1.8.0。在安装的JRE下的执行环境中,我也看不到1.8,只有JavaSE-1.7(我甚至还没有安装!)。当我点击它时,它显示“jdk1.8.0”作为一个兼容的JRE,所以我选择了它,但仍然没有改变

然后我将EclipseMars解压到一个全新的目录中,创建了一个新项目,现在我可以选择1.8了,万岁这大大减少了我在Java 1.8下编译代码时遇到的“名为spliterator的重复方法…”错误,但是,还有一个错误:

具有参数()和()的名为spliterator的重复默认方法从类型列表和集合继承


然而,这可能是因为我扩展了AbstractList和Implementation Set,所以我现在通过删除implements Set来解决这个问题,因为它实际上没有在我的案例中添加任何内容(除了表示我的集合只有唯一的元素)

您必须为开普勒安装JDT/Eclipse Java 8支持。

我在eclipse开普勒上遇到了类似的问题。我已经按照以下步骤解决了它

  • 转到Eclipse和Oper Eclipse Market Place选项中的帮助
  • 为开普勒搜索JDK1.8
  • 安装所需的插件
  • 重新启动eclipse

作为参考,请参考此链接

这是一个老话题,但我只想指出,我已经搜索了足够多的内容,发现Indigo版本无法更新到S.E 1.8,此处是eclipse网站上提供的更新执行环境的链接,但如果您尝试,它将为Indigo抛出错误

//org/File:ExecutionEnvironmentDescriptionInstallation.png这是提供有关执行环境信息的链接

这显示了逐步更新执行环境的步骤


我曾尝试更新执行环境,但我遇到了相同的错误。

假设您已经下载了Jdk 1.8。您必须确保您的eclipse版本支持JDK1.8。单击“帮助”选项卡,然后选择“检查更新”。请重试。

首先将JDK1.8设置为Path 打开Eclipse和Oper Eclipse市场选项。 为开普勒搜索JDK1.8 安装所需的插件。 重新启动eclipse。 将编译器级别从首选项更改为1.8。
如果仍然存在错误,则单击该文件并将编译器设置显式更改为Jdk 1.8旧问题,但在有帮助的情况下发布答案。 已将生成路径配置为使用JDK 1.2.81 但是,生成失败,错误如下:

 lambda expressions are not supported in -source 1.5
[ERROR]   (use -source 8 or higher to enable lambda expressions)
在最新的Eclipse(Photon)中,将下面的条目添加到pom.xml是有效的

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <maven.compiler.target>1.8</maven.compiler.target>
    <maven.compiler.source>1.8</maven.compiler.source>
  </properties>

UTF-8
1.8
1.8

org.apache.maven.plugins
maven编译器插件
3.6.1
1.8
1.8
<
<build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.6.1</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                </configuration>
            </plugin>
        </plugins>
    </build>