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


我想用最新的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找不到1.8,所以我找到的所有关于如何设置当前java版本的帖子都不起作用。我已经尝试添加了一个符号链接,使它看起来像1.8在/System/Library中…路径,但没有用。/usr/libexec/java_home -V仍然只列出旧的Java 1.6。

讽刺的是,在“系统首选项”下的“Java”控制面板只显示Java 1.8!

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


当前回答

似乎还没有人提到SDK man (https://sdkman.io/)。

SKD man允许在Mac上安装多个版本的Java,并在这些版本之间轻松切换。更多信息请访问https://sdkman.io/usage。

例如:

$ sdk list java                                                                                                                                                                                                                       
================================================================================
Available Java Versions
================================================================================
   * 12.ea.20-open
     11.0.1-zulu
 > * 11.0.1-open
     10.0.2-zulu
     10.0.2-open
     9.0.7-zulu
     9.0.4-open
     8.0.192-zulu
     8.0.191-oracle
   + 8.0.181-oracle
     7.0.181-zulu
     1.0.0-rc-10-grl
     1.0.0-rc-9-grl
     1.0.0-rc-8-grl


================================================================================
+ - local version
* - installed
> - currently in use
================================================================================

$ sdk install java 8.0.191-oracle

$ sdk use java 8.0.191-oracle

Using java version 8.0.191-oracle in this shell.                                                                                                                                                                                                      

$ java -version                                                                                                                                                                                                                        
java version "1.8.0_191"
Java(TM) SE Runtime Environment (build 1.8.0_191-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.191-b12, mixed mode)

$ sdk use java 11.0.1-open                                           

Using java version 11.0.1-open in this shell.

$ java -version                                                                                                                                                                                                                        openjdk version "11.0.1" 2018-10-16
OpenJDK Runtime Environment 18.9 (build 11.0.1+13)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.1+13, mixed mode)
                                                                                                                                                                                                         ```


其他回答

最简单的方法是从以下站点下载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

如果你用的是Mac,那么Homebrew就是安装软件的方式。

似乎版本8不再是最新的,所以它不能使用默认的酿造桶安装java。

相反,我做到了以下几点:

brew install homebrew/cask-versions/

如果这个失败了,直接试试下一个:

brew install homebrew/cask-versions/adoptopenjdk8

使用brew cask list或java -version进行测试

假设:Mac机器,你已经安装了自制软件。

安装桶(Homebrew 0.9.5或更高版本,包括桶,因此跳过此步骤):

$ brew tap caskroom/cask
$ brew tap caskroom/versions

安装最新的java:

$ brew cask install java

安装java 8:

$ brew cask install adoptopenjdk/openjdk/adoptopenjdk8

如果你想安装/管理多个版本,那么你可以使用'jenv':

安装和配置jenv:

$ brew install jenv
$ echo 'export PATH="$HOME/.jenv/bin:$PATH"' >> ~/.bash_profile
$ echo 'eval "$(jenv init -)"' >> ~/.bash_profile
$ source ~/.bash_profile

将已安装的java添加到jenv:

$ jenv add /Library/Java/JavaVirtualMachines/jdk1.8.0_202.jdk/Contents/Home
$ jenv add /Library/Java/JavaVirtualMachines/jdk1.11.0_2.jdk/Contents/Home

查看所有已安装的java:

$ jenv versions

上面的命令将给出已安装java的列表:

* system (set by /Users/lyncean/.jenv/version)
1.8
1.8.0.202-ea
oracle64-1.8.0.202-ea

配置你想要使用的java版本:

$ jenv global oracle64-1.6.0.39

设置JAVA_HOME:

$ jenv enable-plugin export

MacOS Big Sur 2021 Java 8安装指南:

如果还没有注册,请登录https://profile.oracle.com/myprofile/account/create-account.jspx; 访问https://www.oracle.com/java/technologies/downloads/#jdk17-mac 选择“Java 8”; 选择“macOS”; 按“jdk-8u301-macosx-x64.dmg”; 选中复选框; 按“下载jdk-8u301-macosx-x64.dmg”; 打开下载的文件; 遵循安装指南;

喜欢=)

brew cask install caskroom/versions/java8