【发布时间】:2017-05-07 04:12:27
【问题描述】:
我在我的 mac 上创建了一个示例 spring-boot 项目。但是当我尝试在其上运行 maven 命令时(例如mvn spring-boot:run),我收到以下错误:
Exception in thread "main" java.lang.UnsupportedClassVersionError:
org/apache/maven/cli/MavenCli : unsupported major.minor version 51.0
当然是强制性的堆栈跟踪。我从阅读许多其他类似(但不相同)问题的答案中知道,这与使用更新版本的 Java 编译,然后使用早期版本的 Java 运行有关。根据这张图表:
J2SE 8 = 52
J2SE 7 = 51
J2SE 6.0 = 50
J2SE 5.0 = 49
JDK 1.4 = 48
JDK 1.3 = 47
JDK 1.2 = 46
JDK 1.1 = 45
我必须以某种方式使用 Java 7 编译,然后以某种方式使用 Java 6 运行。但我不明白这是怎么回事。我很确定我使用的是 Java 8。一方面,当我在终端中输入 java -version 时,我得到:
java version "1.8.0_25"
Java(TM) SE Runtime Environment (build 1.8.0_25-b17)
Java HotSpot(TM) 64-Bit Server VM (build 25.25-b02, mixed mode)
另外,我的 pom 明确指定使用 Java 8:
<project>
<!-- project info -->
<name>springboot-demo</name>
<description>Demo project for Spring Boot</description>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.3.RELEASE</version>
<relativePath /> <!-- lookup parent from repository -->
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
</properties>
<!-- dependencies -->
</project>
到目前为止,我读过的所有答案都说用 Java 6 编译,或者只使用 Java 8...但我使用的是 Java 8!另外,由于我得到的错误是“51.0”而不是“52.0”,这是否意味着我正在使用 Java 7 进行编译?据我所知,我只使用 Java 8!
最重要的是,我该如何解决这个问题?
【问题讨论】:
标签: macos spring-boot java-8 environment-variables java-home