1. 最近因为要接触另外一个新项目,而且项目中用到Lambda表达式,所以在Import该project到Spring tool suite(简称STS)中的时候报错非常多:
对于“<>”这种error,将STS的编译环境都换成1.7的以后,确实就可以解决了。
但是对于下图中明显是Lambda表达式语法的error却无法解决:
百度之后发现要支持Java Lambda表达式,就必须支持Java8,所以准备下载对应的插件,但是并未搜索到需要的支持STS的Java 8 support:
于是乎继续百度,发现这个版本的STS并不支持Java 8特性 (而且在选择Java Compiler Level版本的时候,你可以看到STS最高只支持1.7,这时候也应该可以想到不支持Java 8)。。。
2. 所以就去下载了比较新的Eclipse版本Neon(当然也可以下载3.8.4及以上版本的STS),但是双击eclipse.exe后直接给我报错:
Java was started but returned exit code=13. (因为当时立马去找解决方法了,所以并未截图,就借用他人的图):
搜索一下,发现去Control Panel -> Programs -> Programs and Features -> Uninstall Java 8相关的Updates,然后重启Eclipse就可以解决了。(这是因为Eclipse如果是64位的,电脑上就不能有32位的Jdk,会冲突。)
此时导入有Lambda表达式的Project,发现可以正常编译和运行。
3. 若你安装的是其他版本,比如Eclipse Kepler (4.3.2) SR2, 可能需要另外安装 Java 8 support for Eclipse Kepler SR2. 具体步骤如下:
- 打开Eclipse的Help->Eclipse Marketplace-> Search Java 8 Kepler:
- 重新打开eclipse之后,组件就安装好了,然后我们需要创建一个类输入java8特性的代码测试一下我们的eclipse是否可以正常的支持java8的代码:
- 此处省略创建Class的步骤,直接贴上一个Lambda的小例子:
/**
* 针对eclipse是否支持java8小测试
* MainClass
* @author Vicky Zhu
* */
public class MainClass {
public static void main(String[] args) {
/*
* 尝试输入一个简单的lambda表达式来测试是否可以编译和运行java8的代码
*/
new Thread(() -> System.out.println("这是一个java8的小例子,可以使用lambda表达式")).start();
}
}
- 右键Run As -> Java Application,如果能够正常编译执行,就说明Eclipse的Java 8组件已经完全安装OK.