编者注:这个问题是在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的安装程序不把它放在它真正应该去的地方?我该如何解决这个问题呢?
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
似乎还没有人提到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)
```
注意:Oracle Java 8/9/10不再供公众下载(许可证变更)。
首先从终端安装和更新brew:
bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
brew tap homebrew/cask-versions
brew update
截至2019年6月
从AdoptOpenJDK安装jdk:
brew tap adoptopenjdk/openjdk
brew install --cask adoptopenjdk8
brew install --cask adoptopenjdk9
brew install --cask adoptopenjdk10
brew install --cask adoptopenjdk11
OLD
Java 8:
brew install --cask java8
Java最新的:
brew install --cask java
假设: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