Macos 使用Java 8在mac上进行Spring引导,不支持major.minor 51.0版
我在mac上创建了一个示例spring boot项目。但是,当我尝试在其上运行maven命令时(例如Macos 使用Java 8在mac上进行Spring引导,不支持major.minor 51.0版,macos,spring-boot,java-8,environment-variables,java-home,Macos,Spring Boot,Java 8,Environment Variables,Java Home,我在mac上创建了一个示例spring boot项目。但是,当我尝试在其上运行maven命令时(例如mvn-spring-boot:run),会出现以下错误: 线程“main”java.lang.UnsupportedClassVersionError中出现异常: org/apache/maven/cli/MavenCli:不支持的major.minor版本51.0 当然,后面是强制堆栈跟踪。通过阅读许多其他类似(但不完全相同)问题的答案,我知道这与使用较新版本的Java编译,然后使用较早版本
mvn-spring-boot:run
),会出现以下错误:
线程“main”java.lang.UnsupportedClassVersionError中出现异常:
org/apache/maven/cli/MavenCli:不支持的major.minor版本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运行。但我不明白为什么会这样。我很确定我使用的是Java8。首先,当我在终端中输入java-version
时,我得到:
此外,我的pom明确指定使用Java 8:
springboot演示
SpringBoot的演示项目
org.springframework.boot
spring启动程序父级
1.5.3.1发布
UTF-8
UTF-8
1.8
到目前为止,我读到的所有答案都是使用Java6编译,或者只使用Java8。。。但是我使用的是Java8!另外,由于我得到的错误是“51.0”而不是“52.0”,这不意味着我是用Java7编译的吗?据我所知,我只使用Java8
最重要的是,我如何解决这个问题?问题在于我没有明确的JAVA_主页 在终端中键入
哪个java
时,我会得到
/usr/bin/java
这只是指向
/Library/java/JavaVirtualMachines/{jdk version}/Contents/Home/bin/java
的符号链接
在JavaVirtualMachine目录下,我有两个文件夹:
- 1.6.0.jdk
- jdk1.8.0_25.jdk
echo$JAVA_HOME
时,我什么也没有得到
我在我的主目录中创建了一个名为.bash_profile的文件(因为我还没有这个文件)。然后,我将以下内容放入其中:
我重新启动了我的终端,导航到我的项目,进入
mvn-spring-boot:run
,它就像一个魔咒一样工作 问题在于我没有明确的JAVA_主页
在终端中键入哪个java
时,我会得到
/usr/bin/java
这只是指向
/Library/java/JavaVirtualMachines/{jdk version}/Contents/Home/bin/java
的符号链接
在JavaVirtualMachine目录下,我有两个文件夹:
- 1.6.0.jdk
- jdk1.8.0_25.jdk
echo$JAVA_HOME
时,我什么也没有得到
我在我的主目录中创建了一个名为.bash_profile的文件(因为我还没有这个文件)。然后,我将以下内容放入其中:
我重新启动了我的终端,导航到我的项目,进入
mvn-spring-boot:run
,它就像一个魔咒一样工作 如果将export JAVA_HOME=$(/usr/libexec/JAVA_HOME)
添加到.profile
,则始终将JAVA_HOME
设置为当前版本/usr/libexec/java_home-h
显示更多信息如果将导出java_home=$(/usr/libexec/java_home)
添加到.profile
,则始终将java_home
设置为当前版本/usr/libexec/java_home-h
显示更多信息
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)
<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>
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_25.jdk/Contents/Home
export MAVEN_HOME=/Applications/apache-maven-3.3.9
export PATH=$PATH:$MAVEN_HOME/bin:$JAVA_HOME/bin