我试图从命令行在Spark-Java documentation中构建简单示例。我已将依赖项添加到我的pom.xml中,并且我使用了第一个示例中的代码:
添加了依赖项:
<dependency>
<groupId>com.sparkjava</groupId>
<artifactId>spark-core</artifactId>
<version>2.5.5</version>
</dependency>
尝试编译并运行此代码:
import static spark.Spark.*;
public class HelloWorld {
public static void main(String[] args) {
get("/hello", (req, res) -> "Hello World");
}
}
但是当我尝试运行时,我得到错误:
error: ')' expected
error: illegal start of expression
error: ';' expected
我用来编译和运行项目的命令是:
mvn compile
mvn -q exec:java
当我尝试从命令行运行此错误时,为什么会出现这些错误?
答案 0 :(得分:1)
为了使用像(req, res) -> "Hello World"
这样的lambda表达式,需要使用Java8。您使用的是旧版Java或Maven使用的编译器版本低于1.8。
答案 1 :(得分:1)
您需要确保将源编译为Java 8 。
这已在pom.xml
中完成by defining the maven.compiler.source
and maven.compiler.target
properties:
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>