search
LoginSignup
25
Help us understand the problem. What are the problem?

More than 1 year has passed since last update.

posted at

updated at

OpenJDK時代のJavaをMacで切り替える方法

SDKMAN!を使ってJavaをインストールし、それで切り替える。

[追記]Bashの4系以上をインストール

SKDMAN!をMacのBashで利用する場合に、Bashの4系以上が必要になっていたので、適時インストールする(zshを使う場合は不要ではないかと思う)
[2021/11/09] Montereyでzshからbrewを入れたら、binのパスが変わったので、bashのパスは内容に合わせた対応が必要

  • 以前のパス:/usr/local/bin/bash
  • 今回のパス:/opt/homebrew/bin/bash
$ brew install bash

bashのパスを確認
$ which -a bash
/opt/homebrew/bin/bash
/bin/bash

$ sudo vim /etc/shells
末尾に/opt/homebrew/bin/bashを追加

$ chsh -s /opt/homebrew/bin/bash

最後にターミナルを立ち上げ直す

bashが切り替わったことを確認したら

zshからbashに切り替える場合は、brewのパスも変更が必要。

echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> $HOME/.profile
eval "$(/opt/homebrew/bin/brew shellenv)"

.bash_profileがある場合は、↑ではなく、
.bash_profileの先頭にeval "$(/opt/homebrew/bin/brew shellenv)"を記載する

※bashが切り替わらない場合

以下の結果で/opt/homebrew/bin/bashが先に来ていない場合は、

$ which -a bash
/bin/bash
/opt/homebrew/bin/bash

/etc/pathsを確認し、/binよりも前に/opt/homebrew/binを移動させる。

/etc/paths
/usr/local/bin
/usr/bin
/bin
/usr/sbin
/sbin

また、chshの実行結果がchsh: no changes madeとなる場合は、Macのシステム環境設定から変更する。
(確認すると変わっている場合もある)

SDKMAN!のインストール

$ curl -s "https://get.sdkman.io" | bash
$ source "$HOME/.sdkman/bin/sdkman-init.sh"

Javaのインストール

インストールするだけならsdk install javaを実行すると最新のOpenJDKが入る。

$ sdk install java
==== BROADCAST =================================================================
* 2019-04-02: Vertx 3.7.0 released on SDKMAN! #vertx
* 2019-03-28: Micronaut 1.1.0.RC2 released on SDKMAN! #micronautfw
* 2019-03-28: Gradle 5.3.1 released on SDKMAN! #gradle
================================================================================

Downloading: java 11.0.2-open

In progress...

######################################################################## 100.0%

Repackaging Java 11.0.2-open...

Done repackaging...
Cleaning up residual files...

Installing: java 11.0.2-open
Done installing!


Setting java 11.0.2-open as default.

必要に応じてJAVA_HOMEを設定する。

.bashrc
export JAVA_HOME=$HOME/.sdkman/candidates/java/current
export PATH=$JAVA_HOME/bin:$PATH

バージョンを選択したい

1. 探す

インストールしたいバージョンを探して、Javaをインストールする

$ sdk list java
================================================================================
Available Java Versions
================================================================================
     13.ea.14-open       8.0.202-amzn                                           
     12.0.0-zulu         8.0.202.j9-adpt                                        
     12.0.0-open         8.0.202.hs-adpt                                        
     11.0.2-sapmchn      8.0.202-zulufx                                         
     11.0.2-zulu         8.0.201-oracle                                         
 > * 11.0.2-open         7.0.181-zulu                                           
     11.0.2-amzn         1.0.0-rc-14-grl                                        
     11.0.2.j9-adpt      1.0.0-rc-13-grl                                        
     11.0.2.hs-adpt      1.0.0-rc-12-grl                                        
     11.0.2-zulufx       1.0.0-rc-11-grl                                        
     10.0.2-zulu         1.0.0-rc-10-grl                                        
     10.0.2-open         1.0.0-rc-9-grl                                         
     9.0.7-zulu          1.0.0-rc-8-grl                                         
     9.0.4-open                                                                 
     8.0.202-zulu                                                               

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

2. インストールする

$ sdk install java 8.0.202-amzn

3. バージョンを設定する

特定のターミナルだけ変える

$ sdk use java 8.0.202-amzn

使用するJDKのデフォルトを変える

$ sdk default java 8.0.202-amzn

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
25
Help us understand the problem. What are the problem?