我正在尝试从命令行构建Spark-Java文档中的简单示例。 我已经将依赖项添加到我的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
为什么当我尝试从命令行运行它时会出现这些错误?
您需要确保源代码被编译为 Java 8。
这是通过在pom.xml
中定义maven.compiler.source
和maven.compiler.target
属性来完成的:
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
为了使用像(req, res) -> "Hello World"
这样的lambda表达式,需要Java8。您使用的是较旧的 Java 版本,或者 Maven 使用的是低于 1.8 的编译器版本。