如何在Mac上安装Java8

如何在Mac上安装Java8,java,macos,java-8,installation,Java,Macos,Java 8,Installation,编者注:这个问题是在2014年提出的,答案可能已经过时了 我想用最新的JavaFX做一些编程,它需要Java8。我使用的是Intellij13CE和MacOSX9小牛。我运行了Oracle的Java 8安装程序,这些文件看起来像是在 /Library/Java/JavaVirtualMachines/jdk1.8.0_05.jdk 但以前的版本是免费的 /System/Library/Java/JavaFrameworks/jdk1.6.... 不清楚为什么最新安装程序将此文件放在/Lib

编者注:这个问题是在2014年提出的,答案可能已经过时了


我想用最新的JavaFX做一些编程,它需要Java8。我使用的是Intellij13CE和MacOSX9小牛。我运行了Oracle的Java 8安装程序,这些文件看起来像是在

/Library/Java/JavaVirtualMachines/jdk1.8.0_05.jdk
但以前的版本是免费的

/System/Library/Java/JavaFrameworks/jdk1.6....
不清楚为什么最新安装程序将此文件放在
/Library
而不是
/System/Library
(也不知道有什么区别)。但是
/usr/libexec/java_home
找不到1.8,所以我找到的所有关于如何设置当前java版本的帖子都不起作用。我已经尝试添加一个符号链接,使其看起来像是1.8在
/System/Library…
路径中,但没有帮助
/usr/libexec/java_home-V
仍然只列出旧的Java1.6

具有讽刺意味的是,系统首选项下的“Java”控制面板仅显示Java1.8


为什么Oracle的安装程序不把它放在它真正要去的地方?我该如何解决这个问题呢?

Oracle在简化Java的安装和配置方面的记录不好,但是使用最新的OpenJDK(Java 14)可以安装:

brew install --cask adoptopenjdk8
对于许多依赖于旧版本(通常是Java8)的用例,该项目通过额外的步骤使其成为可能

brew tap adoptopenjdk/openjdk
brew install --cask adoptopenjdk8

现有的自制用户可能会遇到
错误:Cask采用OpenJDK8存在于多个抽头中
,这是由于之前使用不同指令的解决方法造成的。这可以通过使用
brew安装完全指定位置来解决——cask采用openjdk/openjdk/adoptopenjdk8

Oracle在易于安装和配置Java方面的记录不好,但是使用,最新的openjdk(Java 14)可以与以下设备一起安装:

brew install --cask adoptopenjdk8
对于许多依赖于旧版本(通常是Java8)的用例,该项目通过额外的步骤使其成为可能

brew tap adoptopenjdk/openjdk
brew install --cask adoptopenjdk8

现有的自制用户可能会遇到
错误:Cask采用OpenJDK8存在于多个抽头中
,这是由于之前使用不同指令的解决方法造成的。这可以通过使用
brew安装完全指定位置来解决——cask采用openjdk/openjdk/adoptopenjdk8

我有同时使用Java 7和8的应用程序,并且必须一直来回运行

我使用约翰写的脚本:

现在,您可以在启动时进行设置,也可以在启动后调用脚本。
安装JDK for Mac

Java 7

Java8


更新推荐

使用jenv和自制软件


然后它就是jenv global oracle6401.6.0.39和它的集合。

我有一些同时使用Java 7和Java 8的应用程序,必须一直来回运行

我使用约翰写的脚本:

现在,您可以在启动时进行设置,也可以在启动后调用脚本。
安装JDK for Mac

Java 7

Java8


更新推荐

使用jenv和自制软件


然后它就是jenv global oracle6401.6.0.39及其套件。

注意:Oracle Java 8/9/10不再公开下载(许可证更改)

首先从终端安装并更新brew:

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

brew tap homebrew/cask-versions

brew update
自2019年6月起新增

要从OpenJDK安装JDK,请执行以下操作:

brew tap adoptopenjdk/openjdk

brew install --cask adoptopenjdk8
brew install --cask adoptopenjdk9
brew install --cask adoptopenjdk10
brew install --cask adoptopenjdk11
旧的

Java 8:

brew install --cask java8
java -version 
java version "1.8.0_31"
Java(TM) SE Runtime Environment (build 1.8.0_31-b13)
Java最新版本:

brew安装——cask java

注意:Oracle Java 8/9/10不再公开下载(许可证更改)

首先从终端安装并更新brew

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

brew tap homebrew/cask-versions

brew update
自2019年6月起新增

要从OpenJDK安装JDK,请执行以下操作:

brew tap adoptopenjdk/openjdk

brew install --cask adoptopenjdk8
brew install --cask adoptopenjdk9
brew install --cask adoptopenjdk10
brew install --cask adoptopenjdk11
旧的

Java 8:

brew install --cask java8
java -version 
java version "1.8.0_31"
Java(TM) SE Runtime Environment (build 1.8.0_31-b13)
Java最新版本:

brew安装——cask java

我开始喜欢在本地计算机上运行应用程序的一个选项是使用Docker。您只需在官方JDK容器中运行应用程序,这意味着您不必担心在本地计算机上设置所有内容(或者担心为不同的应用程序运行多个不同版本的JDK等)

虽然这可能对您当前的安装问题没有帮助,但它是一个解决方案,这意味着您可以避开与尝试在您的开发机器上正确运行Java相关的问题雷区

好处是:

docker-compose run --rm java javac HelloWorld.java 
docker-compose run --rm java java HelloWorld 
brew update
brew tap homebrew/cask-versions
brew tap adoptopenjdk/openjdk
brew search java 
brew cask info java
**brew cask install java**

**brew cask install java8**

**brew cask install java11**
brew cask install homebrew/cask-versions/java11
  • 无需在本地计算机上设置任何版本的Java(只需在从Docker Hub提取的容器中运行Java)
  • 只需更改容器上的标记,即可轻松切换到不同版本的Java
  • 项目依赖项安装在容器中-因此,如果您的配置混乱,您可以简单地取消容器并重新启动 一个非常简单的例子:

    创建一个
    Dockerfile

    FROM java:8
    COPY . /usr/src/myapp
    WORKDIR /usr/src/myapp
    
    • 这里我们指定运行SDK版本8的Java容器(
      Java:8
      -要使用Java 7,您可以指定:
      Java:7
    • 我们正在将本地目录映射到容器中的目录:
      /usr/src/myapp
    创建一个
    docker compose.yml
    文件:

    version: "2"
    
    services:
      java:
        build: .
        volumes:
          - .:/usr/src/myapp
    
    现在,假设我们有这个Java文件:

    HelloWorld.java

    public class HelloWorld {
        public static void main(String[] args) {        
            System.out.println("Hello, World");
        }
    }
    
    brew update
    brew tap caskroom/versions
    brew cask install java8
    
    因此,我们有以下文件结构:

    .
    |_ Dockerfile
    |_ docker-compose.yml
    |_ HelloWorld.java
    
    您可以执行各种Java操作,如:

    编译:

    docker-compose run --rm java javac HelloWorld.java 
    
    docker-compose run --rm java java HelloWorld 
    
    brew update
    
    brew tap homebrew/cask-versions
    
    brew tap adoptopenjdk/openjdk
    
    brew search java 
    
    brew cask info java
    
    **brew cask install java**
    
    **brew cask install java8**
    
    **brew cask install java11**
    
    brew cask install homebrew/cask-versions/java11
    
    • 您应该注意,HelloWorld.class显示在当前目录中(这是因为我们已将当前目录映射到容器中代码所在的位置)
    跑步:

    docker-compose run --rm java javac HelloWorld.java 
    
    docker-compose run --rm java java HelloWorld 
    
    brew update
    
    brew tap homebrew/cask-versions
    
    brew tap adoptopenjdk/openjdk
    
    brew search java 
    
    brew cask info java
    
    **brew cask install java**
    
    **brew cask install java8**
    
    **brew cask install java11**
    
    brew cask install homebrew/cask-versions/java11
    
    • 注意:第一次运行此操作时,它将获取图像等。这将需要一段时间-仅在第一次运行时发生
    • docker compose run
      -从容器中运行命令
    • -rm
      te
      8tracksradiohelper       adoptopenjdk8            amitv87-pip              
      corretto8                icons8                   vmware-fusion8           
      x48                      zulu8
      
      brew cask install adoptopenjdk8
      
      $ brew search jdk
      $ brew cask install homebrew/cask-versions/adoptopenjdk8
      $ /usr/libexec/java_home
      
      brew install homebrew/cask-versions/
      
      brew install homebrew/cask-versions/adoptopenjdk8
      
      brew update
      
      brew tap homebrew/cask-versions
      
      brew tap adoptopenjdk/openjdk
      
      brew search java 
      
      brew search jdk     
      
      brew cask info java
      
      brew cask info adoptopenjdk
      
      **brew cask install java**
      
      **brew cask install java8**
      
      **brew cask install java11**
      
      brew cask install homebrew/cask-versions/java11
      
      brew tap homebrew/cask-versions
      
      
      brew install --cask adoptopenjdk8
      
      brew install openjdk@8
      
      /usr/local/opt/openjdk@8
      
      curl -s "https://get.sdkman.io" | bash
      
      sdk list java 
      sdk install java 8.0.282.hs-adpt