gpt4 book ai didi

java - ' )' and ;' Spark 框架中的预期错误

转载 作者:行者123 更新时间:2023-11-29 03:12:59 26 4
gpt4 key购买 nike

我正在尝试运行这个例子:

package com.mycompany.app;

import static spark.Spark.*;

/**
* Hello world!
*
*/
public class App {
public static void main(String[] args) {
get("/hello", (req, res) -> "Hello World");
}
}

mvn package 但我得到这个错误:

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compile (default-compile) on project my-app: Compilation failure: Compilation failure: [ERROR] /Users/riccardo.tacconi/riccardo/java/spark/my-app/src/main/java/com/mycompany/app/App.java:[11,27] ')' expected [ERROR] /Users/riccardo.tacconi/riccardo/java/spark/my-app/src/main/java/com/mycompany/app/App.java:[11,35] illegal start of expression [ERROR] /Users/riccardo.tacconi/riccardo/java/spark/my-app/src/main/java/com/mycompany/app/App.java:[11,50] ';' expected [ERROR] -> [Help 1]

错误:

App.java:[11,27] ')' expected 

指的是req和,之间的(req, res)。

错误:

App.java:[11,35]

指的是 -> 运算符。在我看来,这一行:

get("/hello", (req, res) -> "Hello World");

它不是有效的 Java 语法。我想知道 Maven 是否正在使用另一个 Java 版本(旧版本?)进行编译。这是我安装的版本:

» java -version                                                                                                                                                                                   riccardo.tacconi@RTACCONI-01
java version "1.8.0_11"
Java(TM) SE Runtime Environment (build 1.8.0_11-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.11-b03, mixed mode)

这就是 pom:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.mycompany.app</groupId>
<artifactId>my-app</artifactId>
<packaging>jar</packaging>
<version>1.0-SNAPSHOT</version>
<name>my-app</name>
<url>http://maven.apache.org</url>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.sparkjava</groupId>
<artifactId>spark-core</artifactId>
<version>2.1</version>
</dependency>
</dependencies>
</project>

最佳答案

线

get("/hello", (req, res) -> "Hello World");

是使用 Lambda 的有效 Java 8 语法。

您应该确保您的 Maven pom.xml 配置为针对 Java 8 进行编译,而不是针对 Java 7 或更早版本进行编译。将此设置用于 Maven Compiler Plugin .

<project>
[...]
<build>
[...]
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.2</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
[...]
</build>
[...]
</project>

此插件的站点 describes your problem :

Also note that at present the default source setting is 1.5 and the default target setting is 1.5, independently of the JDK you run Maven with

关于java - ' )' and ;' Spark 框架中的预期错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28301290/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com