首页 文章

如何在Mac上安装Java 8

提问于
浏览
576

我想用最新的JavaFX进行一些编程,这需要Java 8.我使用的是IntelliJ 13 CE和Mac OS X 9 Mavericks . 我运行了Oracle的Java 8安装程序,文件看起来就像是他们最终的结果

/Library/Java/JavaVirtualMachines/jdk1.8.0_05.jdk

但以前的版本是

/System/Library/Java/JavaFrameworks/jdk1.6....

不知道为什么最新的安装程序将其放在 /Library 而不是 /System/Library (也没有区别) . 但 /usr/libexec/java_home 没有找到关于如何设置当前java版本't work. I'已尝试添加符号链接以使其看起来像1.8在 /System/Library... 路径中,但它没有帮助 . /usr/libexec/java_home -V 仍然只列出旧的java 1.6 .

具有讽刺意味的是,“系统偏好设置”下的“Java”控制面板仅显示java 1.8!

为什么Oracle的安装程序没有把它放在真正的位置?我该如何解决这个问题?

16 回答

  • 22

    最简单的方法是从以下站点下载dmg文件,然后双击安装

    http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
    

    从主目录中查找可用的JVM

    ls -al /Library/Java/JavaVirtualMachines
    

    并使用相关版本更新.bash_profile

    export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_XXX.jdk./Contents/Home
    export PATH=$JAVA_HOME/bin:$PATH
    

    最后

    source ~/.bash_profile
    
  • 382

    brew cask安装caskroom / versions / java8

  • 3

    以下步骤对我有用 .

    1)卸载所有jdks

    在终端窗口中复制并粘贴以下命令:

    sudo rm -fr /Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin
    
    sudo rm -fr /Library/PreferencePanes/JavaControlPanel.prefpane
    

    2)安装APPLE jdk .

    https://support.apple.com/kb/DL1572?locale=en_US

    3)从Oracle下载最新的JDK并安装它,对我来说它是JDK 1.82

    http://www.oracle.com/technetwork/java/javase/downloads/jre8-downloads-2133155.html

    这就是它的魅力所在 .

  • -7

    我有同样的问题要解决,因为我需要安装JDK8来运行Android SDK Manager(因为它似乎与JDK9不兼容) . 但是,我告诉你我是如何解决Mac(Sierra)上的所有问题的 .

    首先,你需要 brew 与cask和 jenv .

    • 您可以在这里找到有用的指南,Homebrew Cask Installation Guide . 切记点击终端中运行的'caskroom/versions': brew tap caskroom/versions

    • 之后,安装jenv: brew install jenv

    • 使用cask brew cask install java8 安装所需的任何版本(如果要安装最新版本,请安装 java7java ,jdk9)

    • 最后一步是配置要运行的版本(并让jenv管理您的JAVA_HOME) jenv versions 列出您计算机上安装的所有版本,然后使用 jenv global [JDK_NAME_OF_LIST] 激活您想要的版本

    你可以在这个Github Gist brew-java-and-jenv.md上找到其他有用的信息,在这个博客Install multiple JDK on a MacJenv Website

  • 11

    最简单的方法 -

    1) brew cask install java (No need to install cask separately it comes with brew)
    
    2) java -version
    
    java version "1.8.0_131"
    Java(TM) SE Runtime Environment (build 1.8.0_131-b11)
    

    P.S - 什么是酿酒桶? Homebrew-Cask扩展了Homebrew,解决了使用Homebrew安装应用程序后执行额外命令 - “安装,拖动此图标......”的麻烦 .

  • 1329

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

    我使用Johan写的这个脚本:

    http://www.jayway.com/2014/01/15/how-to-switch-jdk-version-on-mac-os-x-maverick/

    您现在可以在启动时设置它或之后调用脚本 .
    安装JDK for Mac .

    Java 7

    http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html

    Java 8

    http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

  • -5

    不要依赖Oracle在Mac上正确安装Java .

    使用Homebrew . 这将安装最新的jdk:

    brew cask install java
    

    如果要在Mac上管理多个版本的Java,请考虑使用jenv .

    更新:既然Java 8不再是最新版本,如果你想让java 8以这种方式安装它:

    brew tap caskroom/versions
    brew cask install java8
    

    要获取所有旧版本java的列表: brew tap caskroom/versions ,然后使用 brew search java .

    我们使用brew cask,因为我们否则会使用可能无法在Mac上正确安装Java的Oracle GUI安装程序 . (使用brew cask install APP安装GUI应用程序;使用brew install APP . )Java不是GUI应用程序;它不应该要求"cask"但至少Oracle是一致的 .

  • 50

    对于 El CapitanSierraHigh Sierra

    首先从终端安装和更新 brew

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

    Java 8:

    brew cask install java8
    

    Java最新消息:

    brew cask install java
    
  • 7

    如果您的计算机上有多个Java版本,并且您想在运行时动态选择它,即在我的情况下,我有两个版本:

    ls -la /Library/Java/JavaVirtualMachines
    drwxr-xr-x  3 root  wheel    96B Nov 16  2014 jdk1.7.0_71.jdk/
    drwxr-xr-x  3 root  wheel    96B Mar  1  2015 jdk1.8.0_31.jdk/
    

    您可以通过修改 /etc/profile 内容来更改它们 . 只需在文件末尾添加(或修改)以下两行:

    export JAVA_HOME=YOUR_JAVA_PATH/Contents/Home
    export PATH=$JAVA_HOME/bin:$PATH
    

    在我的情况下,如果我想使用它应该像下面这样:

    Java 7:

    export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.7.0_71.jdk/Contents/Home
    export PATH=$JAVA_HOME/bin:$PATH
    

    Java 8:

    export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_31.jdk/Contents/Home
    export PATH=$JAVA_HOME/bin:$PATH
    

    保存文件后, please run source /etc/profile ,它应该工作 . 当我相应地使用第一个和第二个选项时,结果如下:

    Java 7:

    java -version
    java version "1.7.0_71"
    Java(TM) SE Runtime Environment (build 1.7.0_71-b14)
    

    Java 8:

    java -version 
    java version "1.8.0_31"
    Java(TM) SE Runtime Environment (build 1.8.0_31-b13)
    

    如果您的java文件夹位于不同的位置,则该过程类似 .

  • 4

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

    虽然这可能无法帮助您解决当前的安装问题,但这是一个解决方案,这意味着您可以在尝试让Java在您的开发机器上正常运行时遇到问题的雷区!

    The benefits are:

    • 无需设置任何版本的Java您的本地计算机(您只需在从Docker Hub提取的容器中运行Java)

    • 只需更改容器上的标签,即可轻松切换到不同版本的Java .

    • 项目依赖项安装在容器中 - 因此,如果您搞砸了配置,您可以简单地核对容器并重新开始 .

    A very simple example:

    创建 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");
        }
    }
    

    所以我们有以下文件结构:

    .
    |_ Dockerfile
    |_ docker-compose.yml
    |_ HelloWorld.java
    

    你可以做各种Java的事情,比如:

    compile:

    docker-compose run --rm java javac HelloWorld.java
    
    • 你应该注意到HelloWorld.class显示在你当前的目录中(这是因为我们已经将当前目录映射到我们的代码存在的容器内的位置

    run:

    docker-compose run --rm java java HelloWorld
    
    • 注意:第一次运行它会获取图像等 . 这需要一段时间 - 它只会在第一次发生

    • docker-compose run - 从容器中运行命令

    • -rm 告诉docker在命令运行完毕后删除容器

    • java 是服务/容器的名称(来自我们的docker-compose文件),此命令将针对该名称运行

    • 该行的其余部分是在容器内运行的命令 .

    这是处理为不同应用程序运行不同版本的Java而不会使本地设置完全混乱的一种很酷的方式:) .

    这是一个稍微复杂的例子Maven and a simple Spring app

    Disclaimer:

  • 98

    我也有同样的问题 . 但经过一点点击中和试验,我能够解决这个问题 .

    尝试通过sudo rm删除1.6 sdk并重启你的mac .

    再次下载.dmg文件 . 您下载的.dmg安装程序可能已损坏 . 再次安装 .

    安装后运行以下命令 . 它为jdk 8提供了路径./ usr / libexec / java_home -v 1.8

    您还可以运行并查看jdk 8文件夹 . 文件可能是隐藏的 . ls -al / Library / Java / JavaVirtualMachines /

  • 7

    最好的方法是使用Brew包管理器但命令

    brew cask install java8
    

    失败并出错:

    Error: No available formula with the name "java8"
    

    所以用

    brew cask install caskroom/versions/java8
    

    我如何找到“caskroom / versions / java8”:使用brew search命令:

    brew cask search java8
    
  • 8

    我只是在我的MBP上做了这个,并且不得不使用

    $ brew tap caskroom/versions
    $ brew cask install java8
    

    为了让java8安装 .

  • 2

    JavaVirtualMachines文件夹现在是正确的

    为什么Oracle的安装程序没有把它放在真正的位置?我该如何解决这个问题?

    Not a problem.

    文件夹 /Library/Java/JavaVirtualMachines/macOSJVM的新主页 .

    要安装JVM,请使用下面讨论的安装程序 .

    要卸载,只需使用Finder从该文件夹中删除JVM即可 . 系统将提示您输入系统管理员密码以完成删除 .


    Java 9&10&11

    回到2010年,Apple joined OpenJDK project,以及OracleIBMRed HatAzul和其他Java供应商 . 每个成员都为统一的OpenJDK代码库提供源代码,测试和反馈 .

    Apple为其JVM贡献了大部分特定于Mac的代码 . 现在,Apple不再发布自己的Mac专用JVM . 您现在可以选择JVM供应商,其中的构建来自OpenJDK代码库 .

    您将在以下位置找到源代码:http://openjdk.java.net

    请注意,在2017年,Oracle,JCP和OpenJDK已采用new rapid “release train” plan定期安排的Java版本以可预测的方式提供 .

    阅读这篇2018-07 Azul Systems博客文章了解更多详情,Eliminating Java Update Confusion by Simon Ritter .

    供应商

    有关过去和现在JVM实现的相当详尽的列表,请参阅this page at Wikipedia .

    以下是我所知道的三个当前活跃的来源 .

    Oracle JVM

    Oracle为包括macOS在内的多个平台提供JDK和JRE安装程序 .

    他们的新业务计划是提供一个Oracle品牌的Java实现,需要付费才能生成,并且免费用于开发/测试/演示 . 对先前版本的支持需要付费支持计划 . 他们已宣布他们的品牌发布意图与OpenJDK版本的功能相同 . 他们甚至向OpenJDK项目捐赠了他们的商业附件,如Flight Recorder .

    Zulu&Zing by Azul

    Azul Systems提供了各种JVM产品 .

    • 他们的 Zulu 行直接基于OpenJDK,并且可选择付费支持计划免费提供 .

    • 他们的 Zing 系列提供商业JVM产品,增强了备用技术实现,例如专业garbage-collector .

    他们的两条线都为macOS提供安装程序 .

    我目前在macOS High Sierra上使用Zulu for Java 10.0.1,使用IntelliJ 2018.2和Vaadin 8 . 我是downloaded from this page . 顺便说一下,我没有在Apple System Preferences应用程序上找到任何与Java相关的项目 .

    AdoptOpenJDK.net

    AdoptOpenJDK是社区主导的构建OpenJDK源二进制文件的工作 . 目前仅适用于Java 8,可以使用HotSpot或OpenJ9引擎 .

    Eclipse的OpenJ9

    未来的另一个提供商可能是OpenJ9项目 . 现在由Eclipse基金会赞助,由IBM在2017年捐赠技术和支持 . 我无法辨别他们是否打算分发macOS .


    如何安装

    Oracle或Azul提供的安装程序操作都非常简单 . 只需在Mac上运行安装程序即可 . 将出现一个窗口,指示安装进度 .

    完成后,通过以下方式验证JVM安装:

    • 访问 /Library/Java/JavaVirtualMachines/ 文件夹以查看新JVM的项目 .

    • 运行Terminal.app等控制台并输入 java -version 以查看JVM的品牌和版本号 .

    验证成功后,在Finder中卸载.dmg图像 . 然后删除您下载的.dmg文件 .

  • 3

    在mac High Sierra 上运行这些命令

    brew update
    brew tap caskroom/versions
    brew cask install java8
    

    并检查命令

    java -version
    
  • 13

    使用brew

    brew install Caskroom/cask/java
    

相关问题