编者注:这个问题是在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的安装程序不把它放在它真正应该去的地方?我该如何解决这个问题呢?
我也有同样的问题要解决,因为我需要安装JDK8来运行Android SDK管理器(因为它似乎与JDK9不太配合)。
然而,我告诉你我是如何解决Mac (Sierra)上的所有问题的。
首先,你需要和cask和jenv一起酿酒。
You can find an useful guide here,Homebrew Cask Installation Guide.
Remember to tap 'caskroom/versions' running in the terminal:
brew tap caskroom/versions
After that, install jenv with:
brew install jenv
Install whatever version you want with cask
brew cask install java8 (or java7 or java if you want to install the latest version, jdk9)
The last step is to configure which version to run (and let jenv to manage your JAVA_HOME)
jenv versions to list all versions installed on your machine and then activate the one you want with jenv global [JDK_NAME_OF_LIST]
你可以在这个Github Gist brew-java-and-jenv上找到其他有用的信息。在Mac和Jenv网站上安装多个JDK
在2022年,你可以只使用酿造
brew install openjdk@8
也许你需要更新PATH env:
export PATH="/usr/local/opt/openjdk@8/bin:$PATH"
为未来试一试的人,胜过酝酿的人
curl -s "https://get.sdkman.io" | bash
然后打开一个新的shell和try列表,看看你可以安装什么;-)
sdk list java
在写这篇文章的时候,安装java 8你可以使用:
sdk install java 8.0.322-tem
注意:更新install命令以匹配运行sdk list java中的一些现有标识符show
似乎还没有人提到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)
```
Java8不再可用,brew安装Java8将无法工作。
相反,使用:
brew cask install adoptopenjdk/openjdk/adoptopenjdk8
有关技术细节,请参阅此提交。
请注意,您可能会在多个水龙头中看到有关Cask adoptopenjdk8的问题。这是一个已知的问题,目前正在解决,你可以在这里看到:
https://github.com/AdoptOpenJDK/homebrew-openjdk/issues/106
对于那些不想详细介绍的人,这里有一个总结:
# To install JDK8
brew cask install adoptopenjdk/openjdk/adoptopenjdk8
# To be able to safely run 'brew cleanup'
brew untap adoptopenjdk/openjdk
brew untap caskroom/versions
brew cleanup