Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Macos 使用Java 8在mac上进行Spring引导,不支持major.minor 51.0版_Macos_Spring Boot_Java 8_Environment Variables_Java Home - Fatal编程技术网

Macos 使用Java 8在mac上进行Spring引导,不支持major.minor 51.0版

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编译,然后使用较早版本

我在mac上创建了一个示例spring boot项目。但是,当我尝试在其上运行maven命令时(例如
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
事实上,我确实安装了Java6!尽管/usr/bin/java指向java8的目录,并且终端中的版本是java8,但当我尝试运行maven时,它使用的是java6安装

为了解决这个问题,我需要设置JAVA_HOME环境变量并将其添加到路径中。在此之前,在终端中键入
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
事实上,我确实安装了Java6!尽管/usr/bin/java指向java8的目录,并且终端中的版本是java8,但当我尝试运行maven时,它使用的是java6安装

为了解决这个问题,我需要设置JAVA_HOME环境变量并将其添加到路径中。在此之前,在终端中键入
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